77 #ifdef USE_REAL_REGISTERCONSOLEVDM 79 #define __RegisterConsoleVDM RegisterConsoleVDM 80 #define __InvalidateConsoleDIBits InvalidateConsoleDIBits 117 DPRINT1(
"__RegisterConsoleVDM(%d)\n", dwRegisterFlags);
121 if (dwRegisterFlags != 0)
165 COORD Origin = { lpRect->Left, lpRect->Top };
207 SHORT oldWidth, oldHeight;
239 ConRect.
Left = ConRect.
Top = 0;
278 ConRect.
Left = ConRect.
Top = 0;
310 #ifdef USE_REAL_REGISTERCONSOLEVDM 314 DWORD AddressSize, ScanlineSize;
318 COORD Origin = { 0, 0 };
356 #ifdef USE_REAL_REGISTERCONSOLEVDM 375 ConRect.
Left = ConRect.
Top = 0;
408 #ifdef USE_REAL_REGISTERCONSOLEVDM 421 COORD dummySize = {0};
499 DPRINT1(
"VgaAttachToConsole -- TextResolution uninitialized\n");
585 if (CursorStart < CursorEnd)
588 CursorInfo.
bVisible = CursorVisible;
589 CursorInfo.
dwSize = (100 * (CursorEnd - CursorStart)) / TextSize;
652 &GraphicsBufferInfo);
#define VGA_BITMAP_INFO_SIZE
BOOL WINAPI DECLSPEC_HOTPATCH WriteConsoleOutputA(IN HANDLE hConsoleOutput, IN CONST CHAR_INFO *lpBuffer, IN COORD dwBufferSize, IN COORD dwBufferCoord, IN OUT PSMALL_RECT lpWriteRegion)
static HANDLE TextConsoleBuffer
_In_ ULONG _In_ ULONG _In_ ULONG Length
static COORD CurrResolution
VOID VgaConsoleUpdateTextCursor(BOOL CursorVisible, BYTE CursorStart, BYTE CursorEnd, BYTE TextSize, DWORD ScanlineSize, WORD Location)
BOOL __InvalidateConsoleDIBits(IN HANDLE hConsoleOutput, IN PSMALL_RECT lpRect)
BITMAPINFOHEADER bmiHeader
static PVOID ActiveFramebuffer
ConsoleFramebuffer.
struct tagBITMAPINFO * LPBITMAPINFO
BOOL WINAPI InvalidateConsoleDIBits(IN HANDLE hConsoleOutput, IN PSMALL_RECT lpRect)
#define UNREFERENCED_PARAMETER(P)
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
static CONSOLE_SCREEN_BUFFER_INFO OrgConsoleBufferInfo
static PCHAR_CELL VDMBuffer
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput)
_In_ ULONG _In_ ULONG State
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
VOID VgaDetachFromConsole(VOID)
static COORD TextResolution
_In_ HFONT _Out_ PUINT Height
static HPALETTE PaletteHandle
static HANDLE AnotherEvent
static PVOID OldConsoleFramebuffer
BOOL VgaConsoleCreateTextScreen(IN PCOORD Resolution, IN HANDLE PaletteHandle)
static BOOL AttachToConsoleInternal(PCOORD Resolution)
static SCREEN_MODE ScreenMode
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleScreenBufferSize(HANDLE hConsoleOutput, COORD dwSize)
union _CHAR_INFO::@3238 Char
static VOID ResizeTextConsole(PCOORD Resolution, PSMALL_RECT WindowSize OPTIONAL)
BOOL VgaConsoleCreateGraphicsScreen(IN PCOORD Resolution, IN HANDLE PaletteHandle)
BOOL WINAPI DECLSPEC_HOTPATCH ReadConsoleOutputA(IN HANDLE hConsoleOutput, OUT PCHAR_INFO lpBuffer, IN COORD dwBufferSize, IN COORD dwBufferCoord, IN OUT PSMALL_RECT lpReadRegion)
static PBYTE GraphicsFramebuffer
static SMALL_RECT UpdateRectangle
BOOL WINAPI SetConsoleCursorPosition(IN HANDLE hConsoleOutput, IN COORD dwCursorPosition)
static COORD VDMBufferSize
BOOL WINAPI GetConsoleScreenBufferInfo(IN HANDLE hConsoleOutput, OUT PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsolePalette(HANDLE hConsoleOutput, HPALETTE hPalette, UINT dwUsage)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
static CONSOLE_CURSOR_INFO OrgConsoleCursorInfo
#define VGA_MINIMUM_HEIGHT
static HANDLE GraphicsConsoleBuffer
static PCHAR_CELL TextFramebuffer = NULL;
BOOL WINAPI SetConsoleCursorInfo(IN HANDLE hConsoleOutput, IN const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo)
#define SYSPAL_NOSTATIC256
static DWORD VgaGetAddressSize(VOID)
BOOLEAN VgaGetDoubleVisionState(PBOOLEAN Horizontal, PBOOLEAN Vertical)
static HANDLE ScreenBufferHandle
static BOOLEAN DoubleHeight
VOID VgaRefreshDisplay(VOID)
static PCHAR_CELL TextFramebuffer
#define VGA_MINIMUM_WIDTH
static VOID DetachFromConsoleInternal(VOID)
static HANDLE ConsoleMutex
static PVOID GraphicsFramebuffer = NULL;
#define IsConsoleHandle(h)
LPBITMAPINFO lpBitMapInfo
BOOL WINAPI DECLSPEC_HOTPATCH ReleaseMutex(IN HANDLE hMutex)
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN _In_opt_ ULONG WindowSize
static VOID UpdateCursorPosition(VOID)
static BOOLEAN DoubleWidth
BOOL WINAPI GetConsoleCursorInfo(HANDLE hConsoleOutput, PCONSOLE_CURSOR_INFO lpConsoleCursorInfo)
BOOL VgaAttachToConsole(VOID)
VOID EmulatorTerminate(VOID)
static VOID SetActiveScreenBuffer(HANDLE ScreenBuffer)
VOID VgaConsoleRepaintScreen(PSMALL_RECT Rect)
_In_ ULONG _In_ ULONG Offset
VOID ConsoleReattach(HANDLE ConOutHandle)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static PCHAR_INFO CharBuff
static VOID VgaUpdateTextCursor(VOID)
static CONSOLE_SCREEN_BUFFER_INFO ConsoleInfo
VOID VgaConsoleDestroyTextScreen(VOID)
#define CONSOLE_GRAPHICS_BUFFER
BOOLEAN VgaConsoleInitialize(HANDLE TextHandle)
static BYTE VgaCrtcRegisters[SVGA_CRTC_MAX_REG]
BOOL WINAPI __RegisterConsoleVDM(IN DWORD dwRegisterFlags, IN HANDLE hStartHardwareEvent, IN HANDLE hEndHardwareEvent, IN HANDLE hErrorHardwareEvent, IN DWORD dwUnusedVar, OUT LPDWORD lpVideoStateLength, OUT PVOID *lpVideoState, IN PVOID lpUnusedBuffer, IN DWORD dwUnusedBufferLength, IN COORD dwVDMBufferSize, OUT PVOID *lpVDMBuffer)
#define RtlZeroMemory(Destination, Length)
BOOL WINAPI SetConsoleWindowInfo(HANDLE hConsoleOutput, BOOL bAbsolute, CONST SMALL_RECT *lpConsoleWindow)
void DisplayMessage(BOOL bConsole, BOOL bSilent, LPCTSTR lpMessage, LPCTSTR lpTitle, UINT uType)
VOID ScreenEventHandler(PWINDOW_BUFFER_SIZE_RECORD ScreenEvent)
VOID VgaConsoleCleanup(VOID)
VOID VgaConsoleDestroyGraphicsScreen(VOID)
static BYTE VgaMemory[VGA_NUM_BANKS *SVGA_BANK_SIZE]
static BOOLEAN NeedsUpdate
HANDLE WINAPI CreateConsoleScreenBuffer(DWORD dwDesiredAccess, DWORD dwShareMode, CONST SECURITY_ATTRIBUTES *lpSecurityAttributes, DWORD dwFlags, LPVOID lpScreenBufferData)
PULONG MinorVersion OPTIONAL