PDA

Ver la versión completa : Problema SDL



fjsantos
15/12/2007, 22:49
Buenas.

He empezado a manejar la librería SDL para el desarrollo de juegos para la gp2x. Instalé un pack que venía y aconfigurado cuyo IDE es el Dec-C++.
He estado desarrollando una pequeña demo, para testear un poco la velocidad en la escritura de pixeles en pantalla.
El programa lo compilo bajo windows y funciona correctamente, al compilarlo para gp2x me compila perfectamente y me generá el archivo gpe. Sin embargo al copiarlo en la tarjeta de memoria y probarlo finalmente en la propia gp2x, me encuentro que no me aparece nada en pantalla, se queda negro y además las teclas no me responden (se podría decir que se queda colgado).
Hay que tener alguna cosa más en cuenta para compilar el programa para la gp2x, hay que crear algún archivo especial como ocurre en el caso del fenix para que arranque?
El programa es bien sencillo y además esta creado basado en la plantilla que te gener aautomáticamente dicho entorno.

Un saludo, fjsantos.

^MiSaTo^
15/12/2007, 23:05
Mira a ver cómo inicias el modo de vídeo porque no todos están soportados.

fjsantos
15/12/2007, 23:11
Hola ^MiSaTo^

Pues lo inicio de esta forma


screen = SDL_SetVideoMode (320, 240, 8, SDL_SWSURFACE | SDL_DOUBLEBUF);

Creo que es correcta.
A parte uso la librería time.h y hago uso de los métodos LockSurface y UnlockSurface (como cosas quizá más raras).

Un saludo, fjsantos.

^MiSaTo^
15/12/2007, 23:14
Hola ^MiSaTo^

Pues lo inicio de esta forma


screen = SDL_SetVideoMode (320, 240, 8, SDL_SWSURFACE | SDL_DOUBLEBUF);

Creo que es correcta.
A parte uso la librería time.h y hago uso de los métodos LockSurface y UnlockSurface (como cosas quizá más raras).

Un saludo, fjsantos.

si no recuerdo mal SDL_DOUBLEBUF no está soportado. Prueba quitándolo.
Además creo que también debias usar SDL_HWSURFACE en vez de SWSURFACE, pero de eso ya no me acuerdo tan bien que hace un huevo que no toco SDL

fjsantos
15/12/2007, 23:21
Tenías toda la razón ^MiSaTo^
Parece que el double buffer no estaba soportado. He quitado el flag del doublebuffer y he utilizado el método SDL_UpdateRect en vez del SDL_Flip y ahora funciona perfectamente en la gp2x.

Muchísimas gracias.

Un saludo, fjsantos.

^MiSaTo^
15/12/2007, 23:22
Tenías toda la razón ^MiSaTo^
Parece que el double buffer no estaba soportado. He quitado el flag del doublebuffer y he utilizado el método SDL_UpdateRect en vez del SDL_Flip y ahora funciona perfectamente en la gp2x.

Muchísimas gracias.

Un saludo, fjsantos.

de nada pa eso estamos ;):brindis: