Como funciona MODE_DOUBLEBUFFER ?

Started by JaViS, January 30, 2017, 03:02:52 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JaViS

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!
Working on Anarkade. A couch multiplayer 2D shooter.

panreyes

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

JaViS

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?
Working on Anarkade. A couch multiplayer 2D shooter.

JaViS

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
Working on Anarkade. A couch multiplayer 2D shooter.

Drumpi

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.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)