[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Using PyOpenGL for 2D graphics



I'll also throw in a mention of my own project, Rabbyt 
(http://matthewmarshall.org/projects/rabbyt/)  Like Simon's GFX, it's done in 
Pyrex for speed.  (The two libraries can actually be used simultaneously 
without problems.)

Here's a port of Simon's "dumb" example (quick, untested):

import pygame
import rabbyt

rabbyt.init_display()

ball = rabbyt.Sprite("ball.png")

# Make the ball bounce up and down :-)
ball.y = rabbyt.lerp(0, 100, dt=1000, extend="reverse")

running = True
while running:
    if QUIT in (i.type for i in pygame.event.get()):
        running = False
    rabbyt.clear()
    rabbyt.set_time(pygame.time.get_ticks())
    ball.render()
    pygame.display.flip()


On Monday 16 July 2007 02:53:43 Simon Wittber wrote:
> I've been told pyglet (http://pyglet.org/) is approaching a stable
> release. AFAIK, Pyglet works without pygame.
>
> If you're after brain dead simple 2D OpenGL functions only, try gfx.gl
> in the GFX package. (http://cheeseshop.python.org/pypi/GFX).
>
> Dumb GFX example:
>
>   1 import pygame
>   2 from pygame.locals import *
>   3 from gfx import gl
>   4
>   5 pygame.init()
>   6 flags =  OPENGL|DOUBLEBUF|HWSURFACE
>   7 pygame.display.set_mode((800,600), flags)
>   8 gl.init((800,600))
>   9 image = pygame.image.load('ball.png')
>  10 texture_id = gl.load_texture(pygame.image.tostring(image, 'RGBA'),
> image.get_size())
>  11 running = True
>  12 w,h = image.get_size()
>  13 while running:
>  14     if QUIT in (i.type for i in pygame.event.get()):
>  15         running = False
>  16     gl.draw_quad((0,0),((0,0),(0,h),(w,h),(w,0)),
> texture_id=texture_id) 17     pygame.display.flip()
>  18