On 27/07/2020 17:09, Henri Verbeet wrote:
On Mon, 27 Jul 2020 at 17:21, Gabriel Ivăncescu gabrielopcode@gmail.com wrote:
/* Railroad Tycoon 2 tries to restore the surface from within
a WM_QUERYNEWPALETTE message and expects it to succeed. */
I think the reason we care about that is that while the window has been restored at that point, WM_ACTIVATEAPP hasn't been sent yet; otherwise device_parent_activate() would take care of it. In other words, the comment could use some work.
Right, how about something like:
Railroad Tycoon 2 tries to restore the surface from within a WM_QUERYNEWPALETTE message and expects it to succeed. We haven't received the WM_ACTIVATEAPP message by that point, so the device state is still LOST, even though we are in the foreground.
Or do you have something else in mind?
if (GetForegroundWindow() != window) return DDERR_WRONGMODE;
surface->ddraw->device_state = DDRAW_DEVICE_STATE_NOT_RESTORED;
}
Stray newline.
Like patch 1/2, should this apply to non-primary surfaces as well?
Good question, I did add tests for sysmem, but apparently that one can't be lost in the first place. I'll look into it, thanks. :-)