ddraw / wined3d fighting over the resolution!
Peter Dons Tychsen
donpedro at tdcadsl.dk
Wed Feb 13 21:22:16 CST 2008
The funny old game "Insane" has a resolution bug when it exits.
I am not sure exactly how to fix this.
1) It call SetDisplayMode() - switches from 1280 x 1024 -> 640 x 480.
2) It creates a 3D surface which starts the SwapChain - swapchain saves
3) Exit. It calls RestoreDisplayMode() - switches back to 1280 x 1024.
4) SwapChain is destroyed. Switches "back" to 640 x 480 ! BAD!
I presume the code guesses that the caller does this in another sequence
(and it does work fine in other sequences).
Why does the SwapChain-destroy function play around with the resolution
at all. Is that really necessary? I think it should not do it if the
caller is ddraw at least.
How do i fix this?
More information about the wine-devel