diff --git a/sdk/xtdk/xtfw.h b/sdk/xtdk/xtfw.h index ec490e3..ca518e7 100644 --- a/sdk/xtdk/xtfw.h +++ b/sdk/xtdk/xtfw.h @@ -102,6 +102,7 @@ typedef struct _LOADER_GRAPHICS_INFORMATION_BLOCK UINT PixelsPerScanLine; UINT BitsPerPixel; UINT Pitch; + PVOID Font; } LOADER_GRAPHICS_INFORMATION_BLOCK, *PLOADER_GRAPHICS_INFORMATION_BLOCK; /* Boot Loader information block */ diff --git a/xtoskrnl/hl/efifb.c b/xtoskrnl/hl/efifb.c index ba2b5b8..d110f0e 100644 --- a/xtoskrnl/hl/efifb.c +++ b/xtoskrnl/hl/efifb.c @@ -7,6 +7,7 @@ */ #include +#include /** @@ -108,6 +109,18 @@ HlInitializeFrameBuffer(VOID) return STATUS_DEVICE_NOT_READY; } + /* Check if custom font provided by bootloader */ + if(KeInitializationBlock->LoaderInformation.FrameBuffer.Font) + { + /* Use custom font */ + HlpFrameBufferData.Font = KeInitializationBlock->LoaderInformation.FrameBuffer.Font; + } + else + { + /* Use default font */ + HlpFrameBufferData.Font = (PVOID)&XtFbDefaultFont; + } + /* Save framebuffer information and mark display as initialized */ HlpFrameBufferData.Address = KeInitializationBlock->LoaderInformation.FrameBuffer.Address; HlpFrameBufferData.Width = KeInitializationBlock->LoaderInformation.FrameBuffer.Width;