Pour chacun de ces gadgets je crée un simple carré de couleurs jaune.
La création de ce carré se trouve dans la procédure DrawCube()
Quand je redimensionne la fenetre, l'OpenGLGadget de droite est lui aussi redimensionné.
Je ne comprenais pas pourquoi il se redimensionnait après la fin du redimensionnement de la fenetre et je pensais à un bug. En fait non, et j'ai donné une explication sur ce lien http://www.purebasic.fr/french/viewtopi ... =4&t=14512
Reste un souci que je ne comprend pas : Pourquoi je suis obligé de créer les deux OpenGLGadget() avant de commencer à dessiner ?
■ Code
Code : Tout sélectionner
;Dessine un carré jaune
Procedure Drawsquare(Gadget)
SetGadgetAttribute(Gadget, #PB_OpenGL_SetContext, #True)
glColor3f_(1.0,1.0,0.0)
glBegin_(#GL_POLYGON)
glVertex2f_(-0.5,-0.5)
glVertex2f_(-0.5,0.5)
glVertex2f_(0.5,0.5)
glVertex2f_(0.5,-0.5)
glEnd_()
glFlush_() ;s'assure que toutes les commandes OpenGL ont été exécutées
SetGadgetAttribute(Gadget, #PB_OpenGL_FlipBuffers, #True)
EndProcedure
;Redimentionne les contextes OpenGlGadget(à
Procedure Redraw()
ResizeGadget(1, #PB_Ignore, #PB_Ignore, WindowWidth(0) - 230, WindowHeight(0)-20)
DrawSquare(0)
Drawsquare(1)
EndProcedure
OpenWindow(0, 0, 0, 500, 320, "OpenGL Gadget exemple", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
BindEvent(#PB_Event_SizeWindow, @Redraw())
OpenGLGadget(0, 10, 10, 200, 200)
OpenGLGadget(1, 220, 10, 270, 300)
DrawSquare(0)
DrawSquare(1)
Repeat
Event = WaitWindowEvent()
Select Event
EndSelect
Until Event = #PB_Event_CloseWindow
Il est inutile de modifier les paramètres de compilation
