Present()

Started by
1 comment, last by Klaatu 20 years, 5 months ago
Does anyone know the mechanics behind the IDirect3DDevice:resent() method? I''ve heard that it may not force the back buffer to appear on the screen immediately. Some have offered that it may buffer up to three frames before actually presenting to the screen. If this is the case, how do I get an immediate presentation? Also, is there any way to write directly to the primary surface using DirectX? Must I use GDI? Gort...Klaatu, Barada Nikto!
Gort...Klaatu, Barada Nikto!
Advertisement
You can''t force a present, as the graphics aren''t necessarily drawn yet. You can force yourself to wait until the present occurs though. Just do Present(), then pBackBuffer->Lock(). You''ll wish you didn''t, but that''s how it''s done.
Regarding the 3 frames thing: WHQL certified drivers can buffer up to 3 frames, but they don''t have to.

Regarding how to wait until a Present''s done: You can also do it using d3d9 queries, but that only works with DDI9 drivers, as far as I know.

Muhammad Haggag

This topic is closed to new replies.

Advertisement