mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-11 07:11:54 +00:00
- Fixed: DDrawFB should not recreate all its resources when the palette changes if we were
the one responsible for the palette change. - Fixed: DDrawFB::CreateSurfacesComplex() starting tries at 2 instead of 0 is not "debugging cruft" since it counts down, not up. (Partially reverts r3195) SVN r3733 (trunk)
This commit is contained in:
parent
72f1a37ec4
commit
ca33d55bd3
2 changed files with 6 additions and 2 deletions
|
@ -143,6 +143,7 @@ DDrawFB::DDrawFB (int width, int height, bool fullscreen)
|
|||
NeedGammaUpdate = false;
|
||||
NeedPalUpdate = false;
|
||||
NeedResRecreate = false;
|
||||
PaletteChangeExpected = false;
|
||||
MustBuffer = false;
|
||||
BufferingNow = false;
|
||||
WasBuffering = false;
|
||||
|
@ -461,7 +462,7 @@ bool DDrawFB::CreateSurfacesComplex ()
|
|||
{
|
||||
DDSURFACEDESC ddsd = { sizeof(ddsd), };
|
||||
HRESULT hr;
|
||||
int tries = 0;
|
||||
int tries = 2;
|
||||
|
||||
LOG ("creating surfaces using a complex primary\n");
|
||||
|
||||
|
@ -717,7 +718,7 @@ void DDrawFB::PaletteChanged ()
|
|||
// they are obviously jerks, and we need to restore our own palette.
|
||||
if (!Windowed)
|
||||
{
|
||||
if (Palette != NULL)
|
||||
if (!PaletteChangeExpected && Palette != NULL)
|
||||
{
|
||||
// It is not enough to set NeedPalUpdate to true. Some palette
|
||||
// entries might now be reserved for system usage, and nothing
|
||||
|
@ -729,6 +730,7 @@ void DDrawFB::PaletteChanged ()
|
|||
// somebody tries to lock it.
|
||||
NeedResRecreate = true;
|
||||
}
|
||||
PaletteChangeExpected = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1197,6 +1199,7 @@ void DDrawFB::Update ()
|
|||
|
||||
if (pchanged && AppActive && !SessionState)
|
||||
{
|
||||
PaletteChangeExpected = true;
|
||||
Palette->SetEntries (0, 0, 256, PalEntries);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -208,6 +208,7 @@ private:
|
|||
bool NeedGammaUpdate;
|
||||
bool NeedPalUpdate;
|
||||
bool NeedResRecreate;
|
||||
bool PaletteChangeExpected;
|
||||
bool MustBuffer; // The screen is not 8-bit, or there is no backbuffer
|
||||
bool BufferingNow; // Most recent Lock was buffered
|
||||
bool WasBuffering; // Second most recent Lock was buffered
|
||||
|
|
Loading…
Reference in a new issue