ahora calculo los fps de la siguiente forma:
while(bQuit){
t2=fps.GetTime();
sprintf(Title,"fps: %lf",1.0/(t2-1));
t1=t2;
SetWindowText(hWnd,Title);
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
if (msg.message == WM_QUIT){
bQuit = TRUE;
}
else{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
Draw(hDC);
}
donde fps es un contador simple(usa QueryPerformanceCounter). Pero la cifra de fps varia mucho, no se queda estable.
Saludos
[EDIT: no hay ninguna manera de poner codigo como en flipcode?]
[ Este Mensaje fue editado por: ethernet el 2002-08-06 04:18 ]
[ Este Mensaje fue editado por: ethernet el 2002-08-06 04:21 ]
Es que tu no cuentas cuantos frames llevas!!
Mira, este es mi código:
float fTime = Merlin.m_Timer.TiempoAbsoluto();
m_TiempoActual=fTime;
if(m_TiempoAnterior==0) m_TiempoAnterior= fTime;
m_Frames++;
// Actualizamos una vez por segundo
if( fTime - m_TiempoAnterior > 1.0f ) {
m_FPS = m_Frames / (fTime - m_TiempoAnterior);
m_TiempoAnterior = fTime;
m_Frames = 0L;
si, se me ocurrio ayer una solucion muy similar a la tuya :
#define REFRESH 0.5
void FrameRate(HWND wnd){
static CTimer Tfps;
static unsigned int fps;
char p[32];
static double t1,t2;
t2=Tfps.GetTime();
fps++;
if(t2-t1>=REFRESH){
t1=t2;
sprintf(p,"fps: %f",(float)(fps/REFRESH));
SetWindowText(wnd,p);
fps=0;
}
}
Muchas gracias :ojo:
Yo me he dado cuenta en mis experiencias que con OpenGL me da unos FPS más o menos constantes, y con Direct3D son más variables. ¿?
mas inestables?
quizas el "peso" de cada funcion varie mucho, y
cosas que creas se hacen por tarjeta se hacen en modo soft por el driver, decelerando o acelerando la ejecucion segun si a DX le toca hacer algo de esto. Mientras que OpenGL es mas "ensambladoriano" y todas las instrucciones son "sencillas". OpenGL es un ventilador de pologonos :riendo:, lo juro.
¿?
¿Ventilador de polígonos? Yo también: ¿ ? :riendo:
Nunca viene mal ventilarlos ahora en verano con el calor que hace :riendo:
¿o te refieres a algo sexual? :lengua:
Puedes decir lo que quieras pero es mucho mas moderno un aire acondicionador de poligonos que uno ventilador. :jaja:
Ahora en veranito lo mejor pa refrescar es un granizado de poligonos :sonriendo: Y cuando hace frio, la sopita de poligonos de toda la vida :riendo: