Quote:Original post by Armion
@Matias Goldberg: Hmm... I will test if there is any error in my arguments when creating the fullscreen. Could this be related to the Ex version of interfaces and calls(IDirect3DDevice9Ex, PresentEx())?
I don't think so.
The problem is basically when the device doesn't like the arguments for the backbuffer format you passed for the actual resolution you end up using (i.e. wrong refresh rate or bpp colour).
Quote:Original post by Armion
I don't think low fps is the problem - getting more than 4000 with D3DPRESENT_INTERVAL_IMMEDIATE - my app is just rendering its own cursor below the real one.(Unreal Tournament, Battlefield 2 Bad Company)
Oh I see, I thought this problem appeared when you were low on fps with VSync enabled.
Quote:Original post by Armion
- limiting your fps to one or two below the refresh rate - let's say 58fps for 60Hz refresh rate... And it works like a charm. Can someone explain to me this STRANGE behavior?
Well, I'm not sure if I get what exactly you're doing, but seems you're clamping the FPS through the CPU. I can only guess with +60fps present() takes time inside the driver, while having 58-59fps makes present() returns almost immediately except for occasional nano- or milliseconds delay to synchronize with the monitor's refresh; which makes your timing response somehow more accurate. I'm only guessing
There's something I don't understand though about how you're rendering the cursor.
If I understand correctly, you're letting the window's default cursor to show on top of the in window, and at the same time you're drawing a quad with your own cursor. Then use a function like GetCursorPos() to draw it in the same position the hardware cursor should be?
How exactly are you doing this?