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
-~----------~----~----~----~------~----~------~--~---

Reply via email to