Ruben Perez wrote:
> Hi everyone,
>
> Kudos to the Pyglet developers and contributors. The ability to handle
> opengl and different types of media with minimum external dependencies
> is great. I programmed a little 3D opengl test for the alpha 1.0
> version. One problem I've run into with the alpha 2.0 (as well as the
> just release beta 1.0) is that I cannot see 3d cube spinning. Any
> advice how to make the code run with the new releases?
>   
The default on_resize handler (which sets up an orthographic projection) 
was being called after your setup() function.  The reason this changed 
is that in alpha2 and beyond, window events are _only_ dispatched during 
a dispatch_events() call (where previously it was ad-hoc).

The fix is to rename your setup() function to on_resize (for convention 
only) and replace the calls to setup() with::
 
    w1.on_resize = on_resize
    w2.on_resize = on_resize

The attached program implements the fix, and also enables GL_DEPTH_TEST, 
which was probably intended ;-)

Cheers
Alex.

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

#!/usr/bin/env python

'''
'''

__docformat__ = 'restructuredtext'
__version__ = '$Id: $'

#!/usr/bin/env python
'''
Displays a rotating cube using OpenGL.
Ruben E. Perez, 2007
[EMAIL PROTECTED]
'''
from pyglet.gl import *
from pyglet import clock
from pyglet import window
#import ctypes

#def setup():
def on_resize(width, height):
    #
    glMatrixMode(GL_PROJECTION)
    glLoadIdentity()
    gluPerspective(60., 1., 1., 100.)
    #gluPerspective(65,width/float(height),1,100)
    glMatrixMode(GL_MODELVIEW)

    # Background Color
    glClearColor(1, 1, 1, 1)    # White
    #glClearColor(0, 0, 0, 0)   # Black

    glEnable(GL_DEPTH_TEST)

def draw():
    # Draw Window Contents
    #----------------------------------

    # Clear Window And Depth Buffer
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

    #
    glLoadIdentity()

    # Translate
    glTranslatef(0.0,0.0,-7.0)

    # Rotation
    glRotatef(r, 1, 0, 0)   # x_ang
    glRotatef(r, 0, 1, 0)   # y_ang
    glRotatef(r, 0, 0, 1)   # z_ang

    # Cube Coordinates
    glBegin(GL_QUADS)   # Draw The Cube Using quads
    glColor3f(0.0,1.0,0.0)      # Color Green
    glVertex3f( 1.0, 1.0,-1.0)
    glVertex3f(-1.0, 1.0,-1.0)
    glVertex3f(-1.0, 1.0, 1.0)
    glVertex3f( 1.0, 1.0, 1.0)
    glColor3f(1.0,0.5,0.0)
    glVertex3f( 1.0,-1.0, 1.0)
    glVertex3f(-1.0,-1.0, 1.0)
    glVertex3f(-1.0,-1.0,-1.0)
    glVertex3f( 1.0,-1.0,-1.0)
    glColor3f(1.0,0.0,0.0)      # Color Red
    glVertex3f( 1.0, 1.0, 1.0)
    glVertex3f(-1.0, 1.0, 1.0)
    glVertex3f(-1.0,-1.0, 1.0)
    glVertex3f( 1.0,-1.0, 1.0)
    glColor3f(1.0,1.0,0.0)
    glVertex3f( 1.0,-1.0,-1.0)
    glVertex3f(-1.0,-1.0,-1.0)
    glVertex3f(-1.0, 1.0,-1.0)
    glVertex3f( 1.0, 1.0,-1.0)
    glColor3f(0.0,0.0,1.0)      # Color Blue
    glVertex3f(-1.0, 1.0, 1.0)
    glVertex3f(-1.0, 1.0,-1.0)
    glVertex3f(-1.0,-1.0,-1.0)
    glVertex3f(-1.0,-1.0, 1.0)
    glColor3f(1.0,0.0,1.0)
    glVertex3f( 1.0, 1.0,-1.0)
    glVertex3f( 1.0, 1.0, 1.0)
    glVertex3f( 1.0,-1.0, 1.0)
    glVertex3f( 1.0,-1.0,-1.0)
    glEnd()                     # End Drawing The Cube


# Window Constructors
w1 = window.Window(200, 200, caption='First window', resizable=False)
w1.switch_to()
w1.on_resize = on_resize

w2 = window.Window(300, 300, caption='Second window', resizable=True)
w2.switch_to()
w2.on_resize = on_resize

#
r = 0
clock.set_fps_limit(30)
while not (w1.has_exit or w2.has_exit):

    dt = clock.tick()
    r += dt*90
    if (r > 360):
        r = 0

    w1.switch_to()          # Switch to First Window
    w1.dispatch_events()    # Update Window Events
    draw()                  # Draw Window Contents
    w1.flip()               # Perform OpenGL drawing operations

    w2.switch_to()          # Switch to First Window
    w2.dispatch_events()    # Update Window Events
    draw()                  # Draw Window Contents
    w2.flip()               # Perform OpenGL drawing operations

Reply via email to