hi all
today i am trying to catch up with the newest pyglet API. It looks very
nice although a bit weird at the first moment. I am working on this
simple example where many instances of an object are rendered on random
locs on screen. On my Desktop this takes almost 80% CPU, i am pretty
sure i am doing something wrong because most of the CPU time is taken by
the render method, (If I comment render() out it drops to 4% CPU).
any suggestions? I am on Debian, on a PIV at 1.7 gz . Below i paste the
script i am working in.
thanks!
enrike
from pyglet.gl import *
import pyglet
##pyglet.options[ 'debug_gl' ] = False # increase performace when using
opengl. disables error checking
from random import Random
seed = Random()
width, height = 800,600
try:
# Try and create a window with multisampling (antialiasing)
config = Config(sample_buffers=1, samples=4,
depth_size=16, double_buffer=True,)
window = pyglet.window.Window(resizable=True, config=config)
except pyglet.window.NoSuchConfigException:
# Fall back to no multisampling for old hardware
print "applying safe configuration"
window = pyglet.window.Window(resizable=True)
class Graph :
def __init__( self, x, y ) :
self.x = x
self.y = y
def render( self ) :
glPushMatrix()
glTranslatef( self.x, self.y, 0 ) # go to mouseloc
glColor3f( 0.8,0,0)
glRectf(-6, -6, 6, 6)
## glBegin( GL_QUADS )
## glVertex3f( -6, 6, 0 ) #left top
## glVertex3f( 6, 6, 0 )
## glVertex3f( 6, -6, 0 )
## glVertex3f( -6, -6, 0 )
## glEnd()
glPopMatrix()
def setup() :
glClearColor(1, 1, 1, 1)
glColor3f(1, 0, 0)
glEnable(GL_DEPTH_TEST)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(0, width, height, 0, 1, 0)
glMatrixMode(GL_MODELVIEW)
global stack
stack = []
for o in xrange(500) :
x = seed.random() * width
y = seed.random() * height
stack.append( Graph( x, y ) )
[EMAIL PROTECTED]
def on_draw() :
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
for o in stack :
o.render()
window.on_draw = on_draw
def update(dt) :
for o in stack :
o.x = seed.random() * width
o.y = seed.random() * height
setup()
pyglet.clock.schedule_interval(update, 1./12)
pyglet.app.run()
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---