Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: JaViS on January 30, 2017, 03:02:52 PM

Title: Como funciona MODE_DOUBLEBUFFER ?
Post by: JaViS on January 30, 2017, 03:02:52 PM
Buenas gente


seguramente esto se explicó en su momento, cuando se implementó, pero no logro encontrar nada en este foro.


Basicamente necesito saber como funciona el doble buffer, que ventajas tiene usarlo, y si debería o no mejorar la performance del juego,




Muchas gracias!
Title: Re:Como funciona MODE_DOUBLEBUFFER ?
Post by: panreyes on January 30, 2017, 03:11:26 PM
Por lo que veo, simplemente se envía la flag a SDL 1.2:
SDL_DOUBLEBUF:
QuoteEnable hardware double buffering; only valid with SDL_HWSURFACE. Calling SDL_Flip will flip the buffers and update the screen. All drawing will take place on the surface that is not displayed at the moment. If double buffering could not be enabled then SDL_Flip will just perform a SDL_UpdateRect on the entire screen.

Fuente: http://sdl.beuc.net/sdl.wiki/SDL_SetVideoMode
Title: Re:Como funciona MODE_DOUBLEBUFFER ?
Post by: JaViS on January 30, 2017, 05:11:53 PM
Sep, me imaginé que era un wrapper de una funcionalidad de SDL, pero estoy curioso por saber que impacto tiene en el juego.


Parece que funciona solamente con el MODE_HARDWARE?
Title: Re:Como funciona MODE_DOUBLEBUFFER ?
Post by: JaViS on January 31, 2017, 07:33:09 PM
Bueno, leyendo un poco, el doble buffer es para ir dibujando en un buffer de pantalla aparte, en lugar de hacerlo directamente en la memoria de video, para evitar que se vean cosas a medio dibujar entre frame y frame. Nada loco
Title: Re:Como funciona MODE_DOUBLEBUFFER ?
Post by: Drumpi on February 01, 2017, 12:25:36 AM
La teoría es esa: reservas memoria para pintar en dos pantallas y pintas en la primera, y si te sobra tiempo, vas pintando en la segunda para ir ahorrando tiempo. Así vas pintando en una mientras vuelcas a pantalla la otra. Supongo que será algo de eso y que habrá funciones más complejas, pero leí de eso hace ya mucho tiempo y no estoy muy seguro.
Luego hay una técnica con triple buffer, pero ya se escapa a mi conocimiento.

Sobre qué hace en BennuGD, ni idea. Ni siquiera sé si se hace uso, porque recordemos que Bennu va por soft sin aceleración gráfica, así que no sé qué clase de mejora puede haber en SDL.