Hey all, I'm not sure if this has been done, I assume it has somewhere, but Ive seen alot of thread where people have brought up the fact that in its default state, DarkGDK's syncrate is stuck to the monitor's refresh rate, usually 60.
I was playing around with some of the commands in DarkGDK 7.3(im not sure if they are in earlier versions or not) specifically :
bool dbSetDisplayModeVSync( int iWidth, int iHeight, int iDepth, int iVSyncOn );
bool dbSetDisplayModeAntialias( int iWidth, int iHeight, int iDepth, int iVSyncOn, int iMultisamplingFactor, int iMultimonitorMode );
and I noticed that when I called either command with the "int iVSyncOn" parameter set to 0, aswell as having :
dbSyncOn();
dbSyncRate(0);
in the code above the SetDisplayModeVSync call, would result in my syncrate, and this my FPS becoming uncapped...
There is a good and bad side to this, the good is that you can have your FPS as high as your machine can handle it(look at the screeny below to see an out of control cube rotating at 5400ish frames per second)... the Bad side is that you need to programatically control the speed of your code execution in a manner that is independant of the machine speed, so that it executes at the same speed on all machines, or as close is possible.
Here are some screenies :
Plain rotating cubes going hell for leather :
This is a scene with Shader Water, and Blend/Bump Map Shader Terrain, aswell as 7 lights floating around(using a sin curve) connected to spheres.
As you can see the FPS is well over 60 in all of those examples and they were all written in pure DarkGDK, those the first 2 have the extra overhead of some windows API calls as they are actually inside an MDI window
The FPS display in those examples is just a simple :
dbScreenFPS();
just before the dbSync() at the bottom of the main loop, and a dbText to spit it out on screen.
Hope this helps someone who didnt know how to uncap their FPS.
If it ain't broke.... DONT FIX IT !!!