[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:
Hermès Bélusca-Maïto 2014-12-14 17:30:38 +00:00
parent 6dcdba6692
commit 4bc1529cfa
4 changed files with 28 additions and 29 deletions

View file

@ -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);

View file

@ -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;
}

View file

@ -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);

View file

@ -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 ********************************/