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;
|
DDSURFACEDESC desc;
|
||||||
|
|
||||||
if (!m_videoParam.Flags().GetFlipSurfaces()) {
|
if (!m_videoParam.Flags().GetFlipSurfaces()) {
|
||||||
backBuffers = 1;
|
backBuffers = 2;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
backBuffers = m_videoParam.GetBackBuffers() + 1;
|
backBuffers = m_videoParam.GetBackBuffers() + 1;
|
||||||
@ -80,6 +80,17 @@ void MxDisplaySurface::ClearScreen()
|
|||||||
if (m_videoParam.Flags().GetFlipSurfaces()) {
|
if (m_videoParam.Flags().GetFlipSurfaces()) {
|
||||||
m_ddSurface1->Flip(NULL, DDFLIP_WAIT);
|
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