Doble buffer en OpenGL (glfw)

Iniciado por 4dr14n31t0r, 15 Enero 2017, 16:44 PM

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

4dr14n31t0r

En primer lugar, disculpen si me he equivocado de foro para hacer este post, es que no estoy seguro de cual es el mas adecuado  :-\

En segundo lugar, a lo que vamos...
Por lo que tengo entendido, el back-buffer se utiliza para el renderizado de la imagen y el front-buffer para pintar la imagen en la pantalla. Se supone que cuando se termina de renderizar una imagen hay que intercambiar los dos buffers para que el programa se ponga a pintar la imagen mientras se renderiza la otra. El caso es que si solo voy a pintar un triangulo en la ventana, no deberia de tener sentido intercambiar los buffers para volver a pintar la misma imagen que ya esta pintada, de modo que probe a ver que pasa si solo intercambio los buffers una vez para pintar la imagen, pero si solo lo hago una vez toda la pantalla entera parece ralentizarse mucho, es decir, que si quiero mover la ventana de un sitio a otro tarda como 10-20 segundos en cambiar a la nueva posicion cuando la muevo. Ademas tambien parece tardar mucho en minimizar o maximizar o mover otras ventanas. ¿Por que? ¿Como funciona el doble buffer entonces?

PD:Estoy siguiendo este tutorial: https://learnopengl.com/
Si me recomiendan uno mejor se los agradezco.
El codigo fuente con el que estaba practicando esta aqui: https://learnopengl.com/code_viewer.php?code=getting-started/hellowindow2

class_OpenGL

Seguramente hayas quitado del while la función glfwPollEvents(). Lo que hace esta función es actualizar los eventos que le manda Windows o los periféricos, y si no se actualizan, Windows entiende que la aplicación se ha quedado colgada.

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL

4dr14n31t0r

Lol no lo entiendo, he intentado probar de nuevo que efectivamente se me ralentiza la pantalla y ahora no lo hace. De todos modos pollEvents no era el problema, ya que ese metodo solo actualiza los eventos tales como cerrar ventana o pulsar tecla o mover raton. Ademas estoy en linux mint no windows xd De todos modos gracias por todo