SoloCodigo

Programación Específica => Programación de Videojuegos => OpenGL => Mensaje iniciado por: Perla_kiko en Miércoles 9 de Febrero de 2005, 16:16

Título: Refresco Opengl
Publicado por: Perla_kiko en Miércoles 9 de Febrero de 2005, 16:16
hola, tengo mi openGL el cual funciona correctamente pero cuando utilizo los botones creados o el mouse para mover la imagen depende el momento (no siempre es lo mismo) se me borra parte de la pantalla. al refrescar todo continua bien y me la vuelve a dibujar

pq me puede ocurrir esto?
Título: Re: Refresco Opengl
Publicado por: Ruben3d en Viernes 11 de Febrero de 2005, 01:54
Hola.

A diferencia de los controles de Windows, que se vuelven a dibujar solos cuando algo los ocluye, la ventana de OpenGL sólo se dibuja al hacer el SwapBuffers, así que si algo la tapa se pierde el dibujo que había debajo y se queda pintado lo que la ha tapado. Para remediarlo, has de pintarla cada vez que sea necesario (me parece que la ventana recibe un mensaje del tipo WM_PAINT o algo así, no lo recuerdo con precisión).

Un saludo.

Ruben3d
Título: Re: Refresco Opengl
Publicado por: Perla_kiko en Viernes 11 de Febrero de 2005, 10:55
Si ese caso lo sabia, lo que me pasa es que por ejemplo cuando con el mouse muevo la imagen que he creado en Opengl en un momento determinado (no siemrpe es el mismo) se va parte de la imagen. y queda la otra. puede ser caosa de la tarjeta grafica?
Título: Re: Refresco Opengl
Publicado por: Diodo en Viernes 11 de Febrero de 2005, 13:18
Hola  :hola:

Si quieres adjunta el ejecutable del programa aqui y pruebo que no sea la tarjeta grafica

De todas maneras, que codigo utilizas para refrescar?

Prueba con esto a ver si va:

Código: Text
  1.  
  2.  
  3. InvalidateRect(NULL,FALSE);
  4. UpdateWindow();
  5.  
  6.  
  7.  

Un saludo