Reactos
at master 104 lines 2.5 kB view raw
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> 14#include <drivers/bootvid/bootvid.h> 15 16/* Module-specific header */ 17#ifdef MODULE_HEADER 18#include MODULE_HEADER 19#endif 20 21/* Define if FontData has upside-down characters */ 22#undef CHAR_GEN_UPSIDE_DOWN 23 24#define BOOTCHAR_HEIGHT 13 25#define BOOTCHAR_WIDTH 8 // Each character line is encoded in a UCHAR. 26 27/* Bitmap Header */ 28typedef struct tagBITMAPINFOHEADER 29{ 30 ULONG biSize; 31 LONG biWidth; 32 LONG biHeight; 33 USHORT biPlanes; 34 USHORT biBitCount; 35 ULONG biCompression; 36 ULONG biSizeImage; 37 LONG biXPelsPerMeter; 38 LONG biYPelsPerMeter; 39 ULONG biClrUsed; 40 ULONG biClrImportant; 41} BITMAPINFOHEADER, *PBITMAPINFOHEADER; 42 43/* Supported bitmap compression formats */ 44#define BI_RGB 0 45#define BI_RLE4 2 46 47typedef ULONG RGBQUAD; 48 49typedef struct _URECT 50{ 51 ULONG Left; 52 ULONG Top; 53 ULONG Right; 54 ULONG Bottom; 55} URECT; 56 57/* 58 * Globals 59 */ 60extern UCHAR VidpTextColor; 61extern ULONG VidpCurrentX; 62extern ULONG VidpCurrentY; 63extern URECT VidpScrollRegion; 64extern const UCHAR VidpFontData[256 * BOOTCHAR_HEIGHT]; 65extern const RGBQUAD VidpDefaultPalette[BV_MAX_COLORS]; 66 67#define RGB(r, g, b) ((RGBQUAD)(((UCHAR)(b) | ((USHORT)((UCHAR)(g))<<8)) | (((ULONG)(UCHAR)(r))<<16))) 68 69#define GetRValue(quad) ((UCHAR)(((quad)>>16) & 0xFF)) 70#define GetGValue(quad) ((UCHAR)(((quad)>>8) & 0xFF)) 71#define GetBValue(quad) ((UCHAR)((quad) & 0xFF)) 72 73#define InitializePalette() InitPaletteWithTable((PULONG)VidpDefaultPalette, BV_MAX_COLORS) 74 75#ifdef CHAR_GEN_UPSIDE_DOWN 76# define GetFontPtr(_Char) (&VidpFontData[(_Char) * BOOTCHAR_HEIGHT] + BOOTCHAR_HEIGHT - 1) 77# define FONT_PTR_DELTA (-1) 78#else 79# define GetFontPtr(_Char) (&VidpFontData[(_Char) * BOOTCHAR_HEIGHT]) 80# define FONT_PTR_DELTA (1) 81#endif 82 83 84VOID 85PreserveRow( 86 _In_ ULONG CurrentTop, 87 _In_ ULONG TopDelta, 88 _In_ BOOLEAN Restore); 89 90VOID 91DoScroll( 92 _In_ ULONG Scroll); 93 94VOID 95DisplayCharacter( 96 _In_ CHAR Character, 97 _In_ ULONG Left, 98 _In_ ULONG Top, 99 _In_ ULONG TextColor, 100 _In_ ULONG BackColor); 101 102VOID 103ResetDisplay( 104 _In_ BOOLEAN SetMode);