Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Get Ticks, milisegundos y contadores

Iniciado por tamat, 16 de Enero de 2008, 06:22:01 PM

« anterior - próximo »

tamat

Alguien sabe de alguna buena funcion multiplataforma para conseguir un timer con precision de milisegundos? Yo solía usar getTickCount pero es del api de windows, alguien sabe algo equivalente para gcc?

Gracias
Por un stratos menos tenso


Loover

Mirate la implementación que hace SDL de GetTicks, igual te vale. Sino recuerdo mal, en cada sistema lo hace de una manera diferente.
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

tamat

Pues no es mala idea, voy a ver, gracias!
Por un stratos menos tenso

pacomix

Si no recuerdo mal hay una función que te devuelve la resolución del reloj del sistema y otra el tiempo transcurrido en uSecs. A partir de ahí sacas los milisegundos con precisión. Hice algo con eso hace ya algún tiempo.
=El verdadero guerrero de la luz se levanta cuando todos los demás han caído=-

tamat

El problema de SDL es que usa muchas funciones internas de SDL y eso me lía mas.

Creo que al final me quedaré con esto:

long getTime()
{
#ifdef WIN32
return GetTickCount();
#else
tms tm;
return times(&tm);
#endif
}
Por un stratos menos tenso

[EX3]

En Windows tienes tambien los cronometros de alta precision que para ciertos casos pueden resultar muy utiles ya que permiten medir tiempos por debajo del milisegundo.

http://msdn2.microsoft.com/en-us/library/ms644904(VS.85).aspx

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

tamat

Ya, pero mi problema es que en windows ya tengo uno, pero necesito algo equivalente para el resto de SOs
Por un stratos menos tenso

senior wapo

Escribir una funcion como esa es tan , tan facil, que yo escribí la mía desde windows y me compiló y funcionó a la primera en Linux y en Mac.

Te cuento:

Windows: GetTickCount() y QueryPerformanceCounter()
Linux: gettimeofday()
Mac: GetEventTime() o gettimeofday()

Yo uso GetEventTime() en mac pero si no quieres usar carbon, gettimeofday() de UNIX también funciona (mac os x es un engendro unix al fin y al cabo).

tamat

Todas retornan un long que equivale a milisegundos?
Por un stratos menos tenso






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.