mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
[CONSRV]: Move all references to VDM screenbuffers from condrv back to consrv (only ConDrvWriteConsoleOutputVDM remains in condrv for now...)
svn path=/branches/condrv_restructure/; revision=65643
This commit is contained in:
parent
6dcdba6692
commit
4bc1529cfa
4 changed files with 28 additions and 29 deletions
|
@ -214,13 +214,6 @@ ConDrvGetActiveScreenBuffer(IN PCONSOLE Console)
|
|||
|
||||
/* PUBLIC DRIVER APIS *********************************************************/
|
||||
|
||||
NTSTATUS NTAPI
|
||||
ConDrvWriteConsoleOutputVDM(IN PCONSOLE Console,
|
||||
IN PTEXTMODE_SCREEN_BUFFER Buffer,
|
||||
IN PCHAR_CELL CharInfo/*Buffer*/,
|
||||
IN COORD CharInfoSize,
|
||||
IN OUT PSMALL_RECT WriteRegion,
|
||||
IN BOOLEAN DrawRegion);
|
||||
NTSTATUS NTAPI
|
||||
ConDrvInvalidateBitMapRect(IN PCONSOLE Console,
|
||||
IN PCONSOLE_SCREEN_BUFFER Buffer,
|
||||
|
@ -232,19 +225,6 @@ ConDrvInvalidateBitMapRect(IN PCONSOLE Console,
|
|||
/* Validity check */
|
||||
ASSERT(Console == Buffer->Header.Console);
|
||||
|
||||
/* In text-mode only, draw the VDM buffer if present */
|
||||
if (GetType(Buffer) == TEXTMODE_BUFFER)
|
||||
{
|
||||
PTEXTMODE_SCREEN_BUFFER TextBuffer = (PTEXTMODE_SCREEN_BUFFER)Buffer;
|
||||
|
||||
/*Status =*/ ConDrvWriteConsoleOutputVDM(Buffer->Header.Console,
|
||||
TextBuffer,
|
||||
Console->VDMBuffer,
|
||||
Console->VDMBufferSize,
|
||||
Region,
|
||||
FALSE);
|
||||
}
|
||||
|
||||
/* If the output buffer is the current one, redraw the correct portion of the screen */
|
||||
if (Buffer == Console->ActiveBuffer) TermDrawRegion(Console, Region);
|
||||
|
||||
|
|
|
@ -597,14 +597,15 @@ ConDrvWriteConsoleOutput(IN PCONSOLE Console,
|
|||
|
||||
/*
|
||||
* NOTE: This function is strongly inspired by ConDrvWriteConsoleOutput...
|
||||
* FIXME: This function MUST be moved into consrv/conoutput.c because only
|
||||
* consrv knows how to manipulate VDM screenbuffers.
|
||||
*/
|
||||
NTSTATUS NTAPI
|
||||
ConDrvWriteConsoleOutputVDM(IN PCONSOLE Console,
|
||||
IN PTEXTMODE_SCREEN_BUFFER Buffer,
|
||||
IN PCHAR_CELL CharInfo/*Buffer*/,
|
||||
IN COORD CharInfoSize,
|
||||
IN OUT PSMALL_RECT WriteRegion,
|
||||
IN BOOLEAN DrawRegion)
|
||||
IN PSMALL_RECT WriteRegion)
|
||||
{
|
||||
SHORT X, Y;
|
||||
SMALL_RECT ScreenBuffer;
|
||||
|
@ -650,10 +651,6 @@ ConDrvWriteConsoleOutputVDM(IN PCONSOLE Console,
|
|||
}
|
||||
}
|
||||
|
||||
if (DrawRegion) TermDrawRegion(Console, &CapturedWriteRegion);
|
||||
|
||||
*WriteRegion = CapturedWriteRegion;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,16 @@
|
|||
|
||||
/* PUBLIC SERVER APIS *********************************************************/
|
||||
|
||||
/*
|
||||
* FIXME: This function MUST be moved fro condrv/conoutput.c because only
|
||||
* consrv knows how to manipulate VDM screenbuffers.
|
||||
*/
|
||||
NTSTATUS NTAPI
|
||||
ConDrvWriteConsoleOutputVDM(IN PCONSOLE Console,
|
||||
IN PTEXTMODE_SCREEN_BUFFER Buffer,
|
||||
IN PCHAR_CELL CharInfo/*Buffer*/,
|
||||
IN COORD CharInfoSize,
|
||||
IN PSMALL_RECT WriteRegion);
|
||||
NTSTATUS NTAPI
|
||||
ConDrvInvalidateBitMapRect(IN PCONSOLE Console,
|
||||
IN PCONSOLE_SCREEN_BUFFER Buffer,
|
||||
|
@ -33,6 +43,18 @@ CSR_API(SrvInvalidateBitMapRect)
|
|||
&Buffer, GENERIC_READ, TRUE);
|
||||
if (!NT_SUCCESS(Status)) return Status;
|
||||
|
||||
/* In text-mode only, draw the VDM buffer if present */
|
||||
if (GetType(Buffer) == TEXTMODE_BUFFER)
|
||||
{
|
||||
PTEXTMODE_SCREEN_BUFFER TextBuffer = (PTEXTMODE_SCREEN_BUFFER)Buffer;
|
||||
|
||||
/*Status =*/ ConDrvWriteConsoleOutputVDM(Buffer->Header.Console,
|
||||
TextBuffer,
|
||||
Buffer->Header.Console->VDMBuffer,
|
||||
Buffer->Header.Console->VDMBufferSize,
|
||||
&InvalidateDIBitsRequest->Region);
|
||||
}
|
||||
|
||||
Status = ConDrvInvalidateBitMapRect(Buffer->Header.Console,
|
||||
Buffer,
|
||||
&InvalidateDIBitsRequest->Region);
|
||||
|
|
|
@ -307,12 +307,12 @@ typedef struct _CONSOLE
|
|||
LONG ReferenceCount; /* Is incremented each time a handle to something in the console (a screen-buffer or the input buffer of this console) gets referenced */
|
||||
CRITICAL_SECTION Lock;
|
||||
|
||||
CONSOLE_STATE State; /* State of the console */
|
||||
TERMINAL TermIFace; /* Frontend-specific interface */
|
||||
|
||||
ULONG ConsoleID; /* The ID of the console */
|
||||
LIST_ENTRY ListEntry; /* Entry in the list of consoles */
|
||||
|
||||
CONSOLE_STATE State; /* State of the console */
|
||||
TERMINAL TermIFace; /* Terminal-specific interface */
|
||||
|
||||
HANDLE UnpauseEvent; /* When != NULL, event for pausing the console */
|
||||
|
||||
/******************************** Input buffer ********************************/
|
||||
|
|
Loading…
Reference in a new issue