add to def on_resize return pyglet.event.EVENT_HANDLED # Tell pyglet that we have handled the event, to prevent the default handler from running
On Aug 23, 1:22 pm, freevryheid <[email protected]> wrote: > This is probably trivial but ... > If the screen is created on top of another window then if loses focus > and re-activated it shows but it's contents are lost. Seems the window > is not refreshing its contents. > > <code> > #!/usr/bin/env python > > ''' > A pyglet (http://www.pyglet.org) tutorial based loosely on Nehe's > Lesson 3. > Add color to the polygons > See the original source and C based tutorial athttp://nehe.gamedev.net > ''' > > import pyglet > from pyglet.window import key > pyglet.options['debug_gl'] = > False # Disable error > checking for increased performance > from pyglet.gl import * > > class MainWindow(pyglet.window.Window): > def __init__(self): > ''' > todo: > Config must be set with older graphics cards since > the number of samples per pixel defaults to 0 (confirm?) > Note that double_buffer = True is set by default > Set alpha_size = 8 to create a window with an alpha channel > The visibility of the window is delayed until after > initialization > ''' > config = Config \ > ( > samples = 2, \ > alpha_size = 8, \ > ) > super(MainWindow, self).__init__ \ > ( > width = 640, \ > height = 480, \ > resizable = True, \ > caption = 'Lesson 3: F2 toggles fullscreen, ESC exits', \ > visible = False, > config = config, \ > ) > self.FullScreen = self.fullscreen > self.InitGL(self.width,self.height) > self.Center() > self.set_visible(True) > > def on_draw(self): > ''' > built-in pyglet event > ''' > self.clear > () # Clear > the screen and the depth buffer > glLoadIdentity() > # > Reset the view > glTranslatef(-1.5, 0.0, > -6.0) # Move left 1.5 units > and into the screen 6.0 units > glBegin(GL_TRIANGLES) > # > Drawing using triangles > glColor3f > (1.0,0.0,0.0) # Set > the color to red > glVertex3f(0.0, 1.0, 0.0) > # Top > glColor3f > (0.0,1.0,0.0) # Set > the color to green > glVertex3f(-1.0,-1.0, > 0.0) # Bottom left > glColor3f > (0.0,0.0,1.0) # Set > the color to blue > glVertex3f( 1.0,-1.0, > 0.0) # Bottom Right > glEnd > () # > Finished drawing the triangle > glTranslatef(3.0, 0.0, > 0.0) # Move right 3.0 > units. > glColor3f > (0.5,0.5,1.0) # Set > the color to blue one time only > glBegin > (GL_QUADS) # > Start drawing a 4 sided polygon > glVertex3f(-1.0, 1.0, > 0.0) # Top left > glVertex3f(1.0, 1.0, > 0.0) # Top right > glVertex3f(1.0, -1.0, > 0.0) # Bottom right > glVertex3f(-1.0, -1.0, > 0.0) # Bottom left > glEnd > () # We > are done with the polygon > > def on_resize(self, width, height): > ''' > built-in pyglet event > ''' > if height == 0: > # > Prevent a divide by zero if the window is too small > height = 1 > glViewport(0, 0, width, > height) # Reset the current > viewport and perspective transformation > glMatrixMode(GL_PROJECTION) > glLoadIdentity() > gluPerspective(45.0, float(width)/float(height), 0.1, 100.0) > glMatrixMode(GL_MODELVIEW) > > def on_key_press(self, symbol, modifiers): > ''' > built-in pyglet event > ''' > if symbol == key.F2: > self.FullScreen = not > self.FullScreen # Toggle fullscreen > self.set_mouse_visible(not > self.FullScreen) # Toggle mouse visibility > depending on fullscreen > self.set_fullscreen(self.FullScreen) > elif symbol == key.ESCAPE: > self.close() > > def Center(self): > ''' > Center the window on the screen > ''' > x = (self.screen.width-self.width)//2 > y = (self.screen.height-self.height)//2 > self.set_location(x,y) > > def InitGL(self, width, > height): > ''' > A general OpenGL initialization function. > Sets all of the initial parameters. > We call this right after our OpenGL window is created. > ''' > glShadeModel > (GL_SMOOTH) # Enables > smooth color shading > glClearColor(0.0, 0.0, 0.0, > 0.0) # This will clear the > background color to black > glClearDepth > (1.0) # Enables > clearing of the depth buffer > glEnable > (GL_DEPTH_TEST) # > Enables depth testing > glDepthFunc > (GL_LEQUAL) # The type > of depth test to do > glHint(GL_PERSPECTIVE_CORRECTION_HINT, > GL_NICEST) # Really nice perspective calculations > > if __name__ == '__main__': > window = MainWindow() > pyglet.app.run() > > </code> --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pyglet-users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/pyglet-users?hl=en -~----------~----~----~----~------~----~------~--~---
