mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-09-22 11:31:57 -04:00
Fix clear screen on buffered deevices (#544)
This commit is contained in:
parent
6df6ae407c
commit
bb86ee3172
@ -52,7 +52,7 @@ void MxDisplaySurface::ClearScreen()
|
||||
DDSURFACEDESC desc;
|
||||
|
||||
if (!m_videoParam.Flags().GetFlipSurfaces()) {
|
||||
backBuffers = 1;
|
||||
backBuffers = 2;
|
||||
}
|
||||
else {
|
||||
backBuffers = m_videoParam.GetBackBuffers() + 1;
|
||||
@ -80,6 +80,17 @@ void MxDisplaySurface::ClearScreen()
|
||||
if (m_videoParam.Flags().GetFlipSurfaces()) {
|
||||
m_ddSurface1->Flip(NULL, DDFLIP_WAIT);
|
||||
}
|
||||
else {
|
||||
DDBLTFX data;
|
||||
memset(&data, 0, sizeof(data));
|
||||
data.dwSize = sizeof(data);
|
||||
data.dwDDFX = DDBLTFX_NOTEARING;
|
||||
|
||||
if (m_ddSurface1->Blt(NULL, m_ddSurface2, NULL, DDBLT_NONE, &data) == DDERR_SURFACELOST) {
|
||||
m_ddSurface1->Restore();
|
||||
m_ddSurface1->Blt(NULL, m_ddSurface2, NULL, DDBLT_NONE, &data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user