ReactOS 0.4.17-dev-1268-g5608ce5
precomp.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Boot Video Driver
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Precompiled header
5 * COPYRIGHT: Copyright 2007 Alex Ionescu <alex.ionescu@reactos.org>
6 * Copyright 2020 Dmitry Borisov <di.sean@protonmail.com>
7 * Copyright 2020 Stanislav Motylkov <x86corez@gmail.com>
8 */
9
10#pragma once
11
12#include <ntifs.h>
13#include <ndk/halfuncs.h>
15
16/* Module-specific header */
17#ifdef MODULE_HEADER
18#include MODULE_HEADER
19#endif
20
21#ifndef NO_VIDEO_GRAPHICS
22
23/* Define if FontData has upside-down characters */
24#undef CHAR_GEN_UPSIDE_DOWN
25
26#define BOOTCHAR_HEIGHT 13
27#define BOOTCHAR_WIDTH 8 // Each character line is encoded in a UCHAR.
28
29/* Bitmap Header */
30typedef struct tagBITMAPINFOHEADER
31{
44
45/* Supported bitmap compression formats */
46#define BI_RGB 0
47#define BI_RLE4 2
48
49typedef ULONG RGBQUAD;
50
51#else // NO_VIDEO_GRAPHICS
52
53/*
54 * So that:
55 * TEXT_WIDTH == (SCREEN_WIDTH / BOOTCHAR_WIDTH) == 80
56 * TEXT_HEIGHT == (SCREEN_HEIGHT / BOOTCHAR_HEIGHT) == 25
57 */
58#ifndef BOOTCHAR_HEIGHT
59#define BOOTCHAR_HEIGHT 19
60#endif
61#ifndef BOOTCHAR_WIDTH
62#define BOOTCHAR_WIDTH 8
63#endif
64
65#endif // !NO_VIDEO_GRAPHICS
66
67typedef struct _URECT
68{
74
75/*
76 * Globals
77 */
78extern UCHAR VidpTextColor;
79extern ULONG VidpCurrentX;
80extern ULONG VidpCurrentY;
82
83#ifndef NO_VIDEO_GRAPHICS
84
85extern const UCHAR VidpFontData[256 * BOOTCHAR_HEIGHT];
87
88#define RGB(r, g, b) ((RGBQUAD)(((UCHAR)(b) | ((USHORT)((UCHAR)(g))<<8)) | (((ULONG)(UCHAR)(r))<<16)))
89
90#define GetRValue(quad) ((UCHAR)(((quad)>>16) & 0xFF))
91#define GetGValue(quad) ((UCHAR)(((quad)>>8) & 0xFF))
92#define GetBValue(quad) ((UCHAR)((quad) & 0xFF))
93
94#ifndef InitializePalette
95#define InitializePalette() InitPaletteWithTable(VidpDefaultPalette, BV_MAX_COLORS)
96#endif
97
98#ifdef CHAR_GEN_UPSIDE_DOWN
99# define GetFontPtr(_Char) (&VidpFontData[(_Char) * BOOTCHAR_HEIGHT] + BOOTCHAR_HEIGHT - 1)
100# define FONT_PTR_DELTA (-1)
101#else
102# define GetFontPtr(_Char) (&VidpFontData[(_Char) * BOOTCHAR_HEIGHT])
103# define FONT_PTR_DELTA (1)
104#endif
105
106#endif // !NO_VIDEO_GRAPHICS
107
108
109VOID
111 _In_ ULONG CurrentTop,
113 _In_ BOOLEAN Restore);
114
115VOID
117 _In_ ULONG Scroll);
118
119VOID
121 _In_ CHAR Character,
122 _In_ ULONG Left,
123 _In_ ULONG Top,
124 _In_ ULONG TextColor,
125 _In_ ULONG BackColor);
126
127VOID
129 _In_ BOOLEAN SetMode);
unsigned char BOOLEAN
Definition: actypes.h:127
static LPHIST_ENTRY Top
Definition: history.c:53
_Check_return_ _In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ PDXGKARG_SYSTEM_DISPLAY_ENABLE_FLAGS _Out_ UINT _Out_ UINT * Height
Definition: dispmprt.h:1445
struct tagBITMAPINFOHEADER * PBITMAPINFOHEADER
struct tagBITMAPINFOHEADER BITMAPINFOHEADER
const RGBQUAD VidpDefaultPalette[BV_MAX_COLORS]
Definition: common.c:19
const UCHAR VidpFontData[256 *BOOTCHAR_HEIGHT]
Definition: fontdata.c:16
VOID PreserveRow(_In_ ULONG CurrentTop, _In_ ULONG Height, _In_ BOOLEAN Restore)
Definition: bootvid.c:159
UCHAR VidpTextColor
Definition: console.c:14
ULONG VidpCurrentY
Definition: console.c:16
VOID ResetDisplay(_In_ BOOLEAN SetMode)
Definition: bootvid.c:263
ULONG RGBQUAD
Definition: precomp.h:49
ULONG VidpCurrentX
Definition: console.c:15
URECT VidpScrollRegion
Definition: console.c:17
VOID DisplayCharacter(_In_ CHAR Character, _In_ ULONG Left, _In_ ULONG Top, _In_ ULONG TextColor, _In_ ULONG BackColor)
Definition: bootvid.c:67
VOID DoScroll(_In_ ULONG Scroll)
Definition: bootvid.c:112
#define BOOTCHAR_HEIGHT
Definition: precomp.h:26
struct _URECT URECT
#define _In_
Definition: no_sal2.h:158
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
char CHAR
Definition: pedump.c:57
#define BV_MAX_COLORS
Definition: display.h:32
Definition: precomp.h:68
ULONG Right
Definition: precomp.h:71
ULONG Top
Definition: precomp.h:70
ULONG Bottom
Definition: precomp.h:72
ULONG Left
Definition: precomp.h:69
ULONG biClrImportant
Definition: precomp.h:42
USHORT biBitCount
Definition: precomp.h:36
LONG biYPelsPerMeter
Definition: precomp.h:40
ULONG biCompression
Definition: precomp.h:37
LONG biXPelsPerMeter
Definition: precomp.h:39
unsigned char UCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59