mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 04:13:34 +00:00
[NTVDM]
Properly handle the case when the console framebuffer could not be created. svn path=/branches/ntvdm/; revision=60526
This commit is contained in:
+18
-2
@@ -488,12 +488,22 @@ static VOID VgaChangeMode(VOID)
|
||||
if (!(VgaGcRegisters[VGA_GC_MISC_REG] & VGA_GC_MISC_NOALPHA))
|
||||
{
|
||||
/* Enter new text mode */
|
||||
if (!VgaEnterTextMode(&Resolution)) return;
|
||||
if (!VgaEnterTextMode(&Resolution))
|
||||
{
|
||||
DisplayMessage(L"An unexpected VGA error occurred while switching into text mode.");
|
||||
VdmRunning = FALSE;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Enter 8-bit graphics mode */
|
||||
if (!VgaEnterGraphicsMode(&Resolution)) return;
|
||||
if (!VgaEnterGraphicsMode(&Resolution))
|
||||
{
|
||||
DisplayMessage(L"An unexpected VGA error occurred while switching into graphics mode.");
|
||||
VdmRunning = FALSE;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Trigger a full update of the screen */
|
||||
@@ -516,6 +526,12 @@ static VOID VgaUpdateFramebuffer(VOID)
|
||||
+ VgaCrtcRegisters[VGA_CRTC_START_ADDR_LOW_REG];
|
||||
DWORD ScanlineSize = (DWORD)VgaCrtcRegisters[VGA_CRTC_OFFSET_REG] * 2;
|
||||
|
||||
/*
|
||||
* If console framebuffer is NULL, that means something went wrong
|
||||
* earlier and this is the final display refresh.
|
||||
*/
|
||||
if (ConsoleFramebuffer == NULL) return;
|
||||
|
||||
/* Check if this is text mode or graphics mode */
|
||||
if (VgaGcRegisters[VGA_GC_MISC_REG] & VGA_GC_MISC_NOALPHA)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user