looks like pyopengl 3.x returns a numpy array now instead of a string by default... which breaks pygame.image.save on gl with pyopengl 3.x.
Here's a work around screenshot function for gl. def save_screen(screen, filename): def readScreen(x, y, width, height): """ Read in the screen information in the area specified """ glFinish() glPixelStorei(GL_PACK_ALIGNMENT, 4) glPixelStorei(GL_PACK_ROW_LENGTH, 0) glPixelStorei(GL_PACK_SKIP_ROWS, 0) glPixelStorei(GL_PACK_SKIP_PIXELS, 0) data = glReadPixels(x, y, width, height, GL_RGB, GL_UNSIGNED_BYTE) if hasattr(data, "tostring"): data = data.tostring() return data def saveImageData(width, height, data, filename): """ Save image data """ surface = pygame.image.fromstring(data, (width, height), 'RGB', 1) pygame.image.save(surface, filename) data = readScreen(0,0, screen.get_width(), screen.get_height()) saveImageData(screen.get_width(), screen.get_height(), data, filename) On Wed, May 7, 2008 at 2:27 PM, René Dudfield <[EMAIL PROTECTED]> wrote: > hi, > > glReadPixels, make a surface, then use pygame.image.save() > > Then use ffmpeg, or vlc etc to make a movie out of still frames. > > cheers, >