Nombre de usuario:  
Contraseña:     
Regístrate Ayuda Lista de miembros Calendario Mensajes nuevos Mensajes de hoy Búsqueda

Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
SDL Me consume mucha CPU en XP y en Vista se cuelga!
20-01-2009, 04:07 PM
Mensaje: #1
SDL Me consume mucha CPU en XP y en Vista se cuelga!
Buenas, xD

Estoy usando C++ junto con SDL. He hecho algún programita así sencillo (movimiento de personaje y poco más), pero siempre tengo el mismo problema:

Al ejecutarlo me consume aproximadamente el 50 % de CPU en Win XP y Vista de 32 bits, y en Windows Vista 64 directamente se resetea el PC.

¿Cómo puedo solucionar el problema? ¿Tengo que hacer uso de SDL_Delay() o de sleep() en cada iteración del bucle principal o algo así?

Gracias

París en otoño, los últimos meses del año y el final del milenio. Guardo muchos recuerdos de la ciudad; los cafés, la música, el amor y la muerte
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
20-01-2009, 04:51 PM
Mensaje: #2
RE: SDL Me consume mucha CPU en XP y en Vista se cuelga!
xDD se estrena sección ^^

Ya se que suena típico pero, liberas las imagenes cargadas? limitas los frames?

Esperando lan-party casa del alumno!!
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
20-01-2009, 05:14 PM
Mensaje: #3
RE: SDL Me consume mucha CPU en XP y en Vista se cuelga!
Libero las imágenes al final del programa (no en cada iteración, sino al terminar el bucle principal y por tanto el programa). Los frames no los limito.

París en otoño, los últimos meses del año y el final del milenio. Guardo muchos recuerdos de la ciudad; los cafés, la música, el amor y la muerte
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
20-01-2009, 11:03 PM
Mensaje: #4
RE: SDL Me consume mucha CPU en XP y en Vista se cuelga!
(20-01-2009 05:14 PM)MouTio escribió:  Libero las imágenes al final del programa (no en cada iteración, sino al terminar el bucle principal y por tanto el programa). Los frames no los limito.
Pues ahí tienes el problema xD

Limita los fps (50 suelen sobrar normalmente) y libera las imágenes cuando no las uses o tu programa será un mastodonte.

"Hola mundo\n"
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
21-01-2009, 12:25 AM
Mensaje: #5
RE: SDL Me consume mucha CPU en XP y en Vista se cuelga!
¿50 frames?

¿Pero el ojo humano no se supone que sólo ve 24 imágenes por segundo? Entonces debería limitarlo a 24, ¿no?

Y leí que el cine por ejemplo, lo suelen hacer de 30 fotogramas por segundo. ¿Por qué 30 y no 24?

Y lo más importante de todo: ¿Cómo limito los FPS? xDDD

París en otoño, los últimos meses del año y el final del milenio. Guardo muchos recuerdos de la ciudad; los cafés, la música, el amor y la muerte
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
21-01-2009, 01:07 AM
Mensaje: #6
RE: SDL Me consume mucha CPU en XP y en Vista se cuelga!
xDDDD hay una función que lo hace me parece, no me acuerdo xDD si no siempre puedes hacerlo manual xD pones al final del buble un Sleep(el numero que sea xD) está en la librería de windows.h

De todas formas me suena que había una función xD

Esperando lan-party casa del alumno!!
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
21-01-2009, 02:24 AM
Mensaje: #7
RE: SDL Me consume mucha CPU en XP y en Vista se cuelga!
Hay una funcion en SDL que se llama SDL_Delay(n); donde "n" es la cantidad de milisegundos que quieres que el programa esté sin hacer nada. Supongo que será lo mismo que sleep pero sin necesidad de añadir librerías externas.

De todas formas, ¿qué número tengo que poner para limitar el asunto a 30 fps?

París en otoño, los últimos meses del año y el final del milenio. Guardo muchos recuerdos de la ciudad; los cafés, la música, el amor y la muerte
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
21-01-2009, 02:36 AM
Mensaje: #8
RE: SDL Me consume mucha CPU en XP y en Vista se cuelga!
1/fps

"Hola mundo\n"
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
21-01-2009, 03:28 AM
Mensaje: #9
RE: SDL Me consume mucha CPU en XP y en Vista se cuelga!
¿por ejemplo esto?:

#define FPS 30

int main(){
bucle principal{
...
SDL_Delay(1/FPS);
}
return 0;
}

París en otoño, los últimos meses del año y el final del milenio. Guardo muchos recuerdos de la ciudad; los cafés, la música, el amor y la muerte
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
21-01-2009, 03:42 AM
Mensaje: #10
RE: SDL Me consume mucha CPU en XP y en Vista se cuelga!
Premio para el caballero xD

"Hola mundo\n"
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
Enviar respuesta