draw full screen squad

when i draw a full screen squad,I changed the window from 300300 to 600600,i thought
the time for drawing should increase with the
window size,however i got decreasing result.
who can tell me why,thanks a lot.
it use the following code to measure the time
//do drawing
double t2=(double)clock();

Depends. If you have full screen at 640x480 and get 90 fps (vsync off) and then change display resolution to 1280x1024 you would expect a drop in fps.

However, if you are at 300x300 not full screen getting 90 fps (vsync off) and then go to 640x480 full screen and the fps jumps up, then it is probably that the system you are on is wasting time sending window updates to every application that is running. And, depending on how well the other applications were designed may actually redraw what is hidden behind your window though it is never seen.

At least, that is the only possibility I can think of. I could be wrong.

Yeah, just going to fullscreen mode increases the thread priority for the application. A fullscreen application usually has a high CPU usage. A way of seeing it is that if you make an application go fullscreen, you are telling windows that the fullscreen application is the only one you want to bother with right now. In theory if you go from a 640x480 windowed mode application to a 640x480 fullscreen, you should notice a jump up in the FPS.

Oh and by the way if you try to go fullscreen with the width and height of the window set to 300x300, it will go to 640x480 and I thinkg that the 600x600 should also go to 640x480 fullscreen. It could get promoted to 800x600…but i’m not 100% sure on that. But you aren’t getting a 600x600 or 300x300 fullscreen.

  • Halcyon

First, the measurement is inaccurate. glFlush is immediately returning. Use glFinish to measure when the drawing has been completed.
Make sure the rate of your clock is precise enough compared to the time you measure.
600*600 doesn’t sound fullscreen. But if you experience windowed vs. fullscreen performance differences in favor of fullscreen, the way the SwapBuffers is done may be different. Windowed is probably swap-copied and fullscreen is swap-exchanged.
Try measuring without the SwapBuffers.