Bennu Game Development

Foros en Español => General => Topic started by: josebita on December 14, 2011, 02:17:08 AM

Title: Forzar redibujado completo
Post by: josebita on December 14, 2011, 02:17:08 AM
¿Splinter, cómo puedo forzar un redibujado completo de la pantalla desde un módulo?
Title: Re: Frozar redibujado completo
Post by: SplinterGU on December 14, 2011, 02:41:22 AM
para 1 solo frame o todo el tiempo?
Title: Re: Frozar redibujado completo
Post by: josebita on December 14, 2011, 02:47:07 AM
Un solo frame, estoy cambiando el GLODWORD(librender, restore_type) y GLODWORD(librender, dump_type) y llamando a gr_draw_frame() (y luego dejando las globales como estaban, claro) pero parece que la librender no está pensada para hacer eso a mano...
¿Es esa la forma correcta?
Title: Re: Forzar redibujado completo
Post by: SplinterGU on December 14, 2011, 02:55:16 AM
por que decis que no esta pensada para hacer eso?

con eso no vas a forzar el dibujado en ese frame, sino que vas a hacer un dibujado (y luego se hara el dibujado del frame, aunque no se dibujaran los objetos ya dibujados)

otra opcion mas reducida, pero solo funciona si tenes background, seria poner esta linea de codigo en tu modulo/funcion.

if ( background ) background->modified = 1 ;

con eso forzas el dibujado del background y por consiguiente de todos los objetos.
Title: Re: Forzar redibujado completo
Post by: josebita on December 14, 2011, 03:01:16 AM
Quote from: SplinterGU on December 14, 2011, 02:55:16 AM
por que decis que no esta pensada para hacer eso?
Porque debo incluir un:
#define __LIB_RENDER en mis cabeceras o no funciona...

Y ok, gracias por la info de lo otro, veré a ver si me vale. Es porque en iOS según el evento que me llegue de SDL a veces hay que forzar el redibujado de la pantalla o ésta se queda congelada...
Title: Re: Forzar redibujado completo
Post by: SplinterGU on December 14, 2011, 03:13:05 AM
eso es raro, me suena raro que con redibujar se solucione.
Title: Re: Forzar redibujado completo
Post by: josebita on December 14, 2011, 03:29:41 AM
Quote from: SplinterGU on December 14, 2011, 03:13:05 AM
eso es raro, me suena raro que con redibujar se solucione.
El tema es que cuando ocurre algún evento relacionado con el gestor de ventanas (se ha restaurado la ventana, o lo que sea) la superficie screen deja de representar ña superficie de la pantalla. No sé exactamente por qué pero parece alguna historia con SDL1.3, preguntaré en los foros de SDL a ver qué ocurre.
En todo caso, debo obtener la nueva superficie y forzar el redibujado en ella para que el usuario no se entere.