Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: 4dr14n31t0r en 15 Enero 2017, 16:44 pm



Título: Doble buffer en OpenGL (glfw)
Publicado por: 4dr14n31t0r en 15 Enero 2017, 16:44 pm
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


Título: Re: Doble buffer en OpenGL (glfw)
Publicado por: class_OpenGL en 16 Enero 2017, 08:48 am
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.


Título: Re: Doble buffer en OpenGL (glfw)
Publicado por: 4dr14n31t0r en 16 Enero 2017, 21:14 pm
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