On Feb 19, 2014, at 4:36 AM, Henri Verbeet wrote:
On 19 February 2014 02:53, Ken Thomases ken@codeweavers.com wrote:
OK, I can see how that would happen. However, my wined3d patch didn't change that part of the logic. I think my test just exposed a pre-existing bug. It doesn't show up without my wined3d patch applied because, in that case, wined3d fails to restore the window's pixel format and leaves it with a double-buffered pixel format. The two bugs cancel each other out and fixing one allowed the other to be revealed.
With the current code, the pixel format only needs changing if the GL context also does, that's just an implication of setting/restoring both at the same time.
But wined3d doesn't always restore when returning to the app (because the app hadn't made a GL context current) and then doesn't set its context when the app calls back into it. But between those points, the app could set a pixel format on a window.
-Ken