64 lines
2.8 KiB
C
64 lines
2.8 KiB
C
// Public nt-lite DDK display-miniport declarations.
|
|
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <ntlite/status.h>
|
|
#include <ntlite/ddi/display.h>
|
|
|
|
typedef struct KE_CONSOLE_INFO {
|
|
uint32_t Columns;
|
|
uint32_t Rows;
|
|
uint32_t CursorX;
|
|
uint32_t CursorY;
|
|
uint16_t Attribute;
|
|
} KE_CONSOLE_INFO;
|
|
|
|
typedef struct KE_DISPLAY_INFO {
|
|
char PrimaryName[32];
|
|
DISPLAY_MODE Mode;
|
|
uint32_t Caps;
|
|
uint32_t DeviceCount;
|
|
uint32_t Flags;
|
|
uint32_t Reserved;
|
|
DISPLAY_STATS ManagerStats;
|
|
DISPLAY_STATS DeviceStats;
|
|
} KE_DISPLAY_INFO;
|
|
|
|
// Registers a display miniport device with the kernel display manager.
|
|
DISPLAY_API KSTATUS KeDisplayRegisterDevice(DISPLAY_DEVICE* device);
|
|
|
|
// Sets the primary display device.
|
|
DISPLAY_API KSTATUS KeDisplaySetPrimary(DISPLAY_DEVICE* device);
|
|
|
|
// Suspends or resumes fallback console drawing.
|
|
DISPLAY_API void KeDisplaySuspendConsole(bool suspend);
|
|
|
|
// Queries the current display mode.
|
|
DISPLAY_API KSTATUS KeDisplayGetMode(DISPLAY_MODE* outMode);
|
|
|
|
// Queries the current display size.
|
|
DISPLAY_API KSTATUS KeDisplayGetSize(int32_t* outWidth, int32_t* outHeight);
|
|
|
|
DISPLAY_API KSTATUS KeDisplayBlit(int32_t x, int32_t y, int32_t w, int32_t h, const uint32_t* pixels);
|
|
DISPLAY_API KSTATUS KeDisplayBlitPitched(int32_t x, int32_t y, int32_t w, int32_t h, const uint32_t* pixels, uint32_t pitchBytes);
|
|
DISPLAY_API KSTATUS KeDisplayPresentPitched(int32_t x, int32_t y, int32_t w, int32_t h, const uint32_t* pixels, uint32_t pitchBytes);
|
|
DISPLAY_API KSTATUS KeDisplayFillRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color);
|
|
DISPLAY_API KSTATUS KeDisplayClear(uint32_t color);
|
|
DISPLAY_API KSTATUS KeDisplayCopyRect(int32_t dstX, int32_t dstY, int32_t srcX, int32_t srcY, int32_t w, int32_t h);
|
|
DISPLAY_API KSTATUS KeDisplayScroll(int32_t lines);
|
|
DISPLAY_API KSTATUS KeDisplayPutChar(char c, int32_t x, int32_t y, uint32_t fg, uint32_t bg);
|
|
DISPLAY_API KSTATUS KeDisplayPrintChar(char c, uint32_t fg, uint32_t bg);
|
|
DISPLAY_API KSTATUS KeDisplayGetConsoleInfo(KE_CONSOLE_INFO* outInfo);
|
|
DISPLAY_API KSTATUS KeDisplaySetConsoleCursor(int32_t col, int32_t row);
|
|
DISPLAY_API KSTATUS KeDisplayFillConsoleChars(char c, int32_t col, int32_t row, size_t length, size_t* writtenOut);
|
|
DISPLAY_API KSTATUS KeDisplayFillConsoleAttrs(uint16_t attr, int32_t col, int32_t row, size_t length, size_t* writtenOut);
|
|
DISPLAY_API KSTATUS KeDisplayPresent(const DISPLAY_RECT* rects, size_t rectCount);
|
|
DISPLAY_API KSTATUS KeDisplaySync(void);
|
|
DISPLAY_API KSTATUS KeDisplayQueryInfo(KE_DISPLAY_INFO* outInfo);
|
|
DISPLAY_API KSTATUS KeDisplaySetCursorImage(int32_t width, int32_t height, int32_t hotX, int32_t hotY, const uint32_t* argbPixels);
|
|
DISPLAY_API KSTATUS KeDisplaySetCursorPosition(int32_t x, int32_t y);
|
|
DISPLAY_API KSTATUS KeDisplayShowCursor(bool show);
|