Jump to content

  • Log In with Google      Sign In   
  • Create Account

timers in visual c++?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
8 replies to this topic

#1 bruins01   Members   -  Reputation: 122

Like
Likes
Like

Posted 17 April 2000 - 11:27 AM

Is there a kind of Timer() function I can use to: a) calculate frame rates, b) end a game after a certain amount of time? I only need something that would return the number of seconds since midnight of something. Please Help!! I am very frustrated, and Mike00 isn''t helping!

Sponsor:

#2 ga   Members   -  Reputation: 126

Like
Likes
Like

Posted 17 April 2000 - 11:32 AM

Yes, there is

The SetTimer function creates a timer with the specified time-out value.

UINT SetTimer(
HWND hWnd, // handle of window for timer messages
UINT nIDEvent, // timer identifier
UINT uElapse, // time-out value
TIMERPROC lpTimerFunc // address of timer procedure
);

Parameters
hWnd
Handle to the window to be associated with the timer. This window must be owned by the calling thread. If this parameter is NULL, no window is associated with the timer and the nIDEvent parameter is ignored.
nIDEvent
Specifies a nonzero timer identifier. If the hWnd parameter is NULL, this parameter is ignored.
uElapse
Specifies the time-out value, in milliseconds.
lpTimerFunc
Pointer to the function to be notified when the time-out value elapses. For more information about the function, see TimerProc.
If lpTimerFunc is NULL, the system posts a WM_TIMER message to the application queue. The hwnd member of the message''sMSG structure contains the value of the hWnd parameter.

Return Values
If the function succeeds, the return value is an integer identifying the new timer. An application can pass this value, or the string identifier, if it exists, to the KillTimer function to destroy the timer.

If the function fails to create a timer, the return value is zero. To get extended error information, call GetLastError.


Visit our homepage: www.rarebyte.de.st

GA

#3 sc0rpy   Members   -  Reputation: 122

Like
Likes
Like

Posted 17 April 2000 - 05:51 PM

Not a good idea to calculate framerates from WM_TIMER as it can be influenced by CPU usage and the windows message stack.

You should probably use timeGetTime() as defined in winmm.lib. There are a number of example code snippets that use it to calculate framerates (including some sample code in the direct3d sdk) but I don''t have a URL handy..
Sorry.



#4 Gladiator   Members   -  Reputation: 127

Like
Likes
Like

Posted 17 April 2000 - 06:33 PM

Just an idea.... you could also use GetTickCount() to do what you want... it gives you the time in miliseconds since windows startup..

..-gLaDiAtOr=-..

#5 s9801758   Members   -  Reputation: 122

Like
Likes
Like

Posted 17 April 2000 - 06:57 PM

And there is also

QueryPerformanceCounter

which gives you the best control.

Jaap suter

#6 Gladiator   Members   -  Reputation: 127

Like
Likes
Like

Posted 17 April 2000 - 07:46 PM

that''s right... I didn''t want to confuse the questioner

#7 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

Likes

Posted 18 April 2000 - 09:55 AM

i''ve always used the timing class available in windoze with msvc++.

#8 Scootr7481   Members   -  Reputation: 122

Like
Likes
Like

Posted 22 April 2000 - 08:50 PM

QueryPerformanceCounter is the best device available to you without using *shudder* DirectX. This is because every other counter either has flaws, or counts too slowly. Using the message system in windows is a joke. WM_TIMER is influenced by EVERYTHING and can''t be trusted to give you an accurate timing of small ammounts of time. The getTickCount() works great, except what happens if you render more than 100 FPS? It can (and will) only return a maximum of 100 times per second. The Performace counter is based on your CPU''s internal clock speed and will not waiver or faulter at all. Here''s a link to the first version of the OpenGL SuperBible. It should have a section entitled "Real-Time Graphics" with a full implementation documentation and explanation.

OpenGL SuperBible:
http://www.itknowledge.com/reference/archive/1571690735/ewtoc.html

-- John d8?)

"No, really, I DO know it all!" <-- Yeah, Right!!

#9 ga   Members   -  Reputation: 126

Like
Likes
Like

Posted 23 April 2000 - 04:34 AM

sc0rpy is right, multimedia timers are more accurate

Visit our homepage: www.rarebyte.de.st

GA




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS