HQ3X updates and fixes [MaxSt]

This commit is contained in:
pagefault
2003-07-19 22:13:38 +00:00
parent addb385cc8
commit 9788887ff0

View File

@@ -273,14 +273,14 @@ void DrawScreen()
{ {
if (FullScreen == 1) if (FullScreen == 1)
{ {
DDBLTFX ddbltfx; if ((DD_Primary != NULL) && (DD_BackBuffer != NULL))
{
if (DD_BackBuffer->Blt(&rcWindow, DD_CFB, &BlitArea, DDBLT_WAIT, NULL) == DDERR_SURFACELOST)
DD_Primary->Restore();
ddbltfx.dwSize = sizeof(ddbltfx); if (DD_Primary->Flip(NULL, DDFLIP_WAIT) == DDERR_SURFACELOST)
ddbltfx.dwFillColor = 0; DD_Primary->Restore();
}
DD_BackBuffer->Blt( NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx );
DD_BackBuffer->Blt(&rcWindow, DD_CFB, &BlitArea, DDBLT_WAIT, NULL);
DD_Primary->Flip(NULL, DDFLIP_WAIT);
} }
else else
{ {
@@ -1589,6 +1589,7 @@ extern BYTE GUIDSMODE[];
extern BYTE GUIHQ3X[]; extern BYTE GUIHQ3X[];
extern unsigned short resolutn; extern unsigned short resolutn;
void clearwin(); void clearwin();
void clear_display();
char WinName[]={"ZSNESW\0"}; char WinName[]={"ZSNESW\0"};
@@ -1936,6 +1937,7 @@ void initwinvideo(void)
FirstVid = 0; FirstVid = 0;
InitDirectDraw(); InitDirectDraw();
clearwin(); clearwin();
clear_display();
return; return;
} }
@@ -1946,6 +1948,7 @@ void initwinvideo(void)
ReleaseDirectDraw(); ReleaseDirectDraw();
InitDirectDraw(); InitDirectDraw();
clearwin(); clearwin();
clear_display();
return; return;
} }
@@ -2169,6 +2172,32 @@ void clearwin()
UnlockSurface(); UnlockSurface();
} }
void clear_display()
{
if ((DD_Primary != NULL) && (DD_BackBuffer != NULL))
{
DDBLTFX ddbltfx;
ddbltfx.dwSize = sizeof(ddbltfx);
ddbltfx.dwFillColor = 0;
if (DD_BackBuffer->Blt( NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx ) == DDERR_SURFACELOST)
DD_Primary->Restore();
if (DD_Primary->Flip(NULL, DDFLIP_WAIT) == DDERR_SURFACELOST)
DD_Primary->Restore();
if (DD_BackBuffer->Blt( NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx ) == DDERR_SURFACELOST)
DD_Primary->Restore();
if (DD_Primary->Flip(NULL, DDFLIP_WAIT) == DDERR_SURFACELOST)
DD_Primary->Restore();
if (DD_BackBuffer->Blt( NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx ) == DDERR_SURFACELOST)
DD_Primary->Restore();
}
}
extern void DrawWin256x224x16(); extern void DrawWin256x224x16();
extern void DrawWin256x224x16MB(); extern void DrawWin256x224x16MB();
extern void DrawWin256x224x32(); extern void DrawWin256x224x32();