Autor Tema: Como funciona MODE_DOUBLEBUFFER ?  (Leído 297 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Conectado JaViS

  • Global Moderator
  • Hero Member
  • *****
  • Mensajes: 1140
  • Karma: 19
  • Sexo: Masculino
    • Ver Perfil
    • Anarkade
Como funciona MODE_DOUBLEBUFFER ?
« en: Enero 30, 2017, 07:02:52 am »
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.

Conectado panreyes

  • Administrator
  • Hero Member
  • *****
  • Mensajes: 2031
  • Karma: 64
  • Sexo: Masculino
    • Ver Perfil
    • panreyes.com
Re:Como funciona MODE_DOUBLEBUFFER ?
« Respuesta #1 en: Enero 30, 2017, 07:11:26 am »
Por lo que veo, simplemente se envía la flag a SDL 1.2:
SDL_DOUBLEBUF:
Citar
Enable 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

Conectado JaViS

  • Global Moderator
  • Hero Member
  • *****
  • Mensajes: 1140
  • Karma: 19
  • Sexo: Masculino
    • Ver Perfil
    • Anarkade
Re:Como funciona MODE_DOUBLEBUFFER ?
« Respuesta #2 en: Enero 30, 2017, 09:11:53 am »
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.

Conectado JaViS

  • Global Moderator
  • Hero Member
  • *****
  • Mensajes: 1140
  • Karma: 19
  • Sexo: Masculino
    • Ver Perfil
    • Anarkade
Re:Como funciona MODE_DOUBLEBUFFER ?
« Respuesta #3 en: Enero 31, 2017, 11:33:09 am »
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.

Desconectado Drumpi

  • Hero Member
  • *****
  • Mensajes: 6135
  • Karma: 157
  • Sexo: Masculino
  • Odio el periodo "entre proyectos"
    • Ver Perfil
    • La web de Drumpi
Re:Como funciona MODE_DOUBLEBUFFER ?
« Respuesta #4 en: Enero 31, 2017, 04:25:36 pm »
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)