def __init__(self, transform, **kwargs): kwargs.setdefault('info', None) self.view_transform = transform info = kwargs.get('info') if info is None: self.update_screenshot() else: self.info = info w, h, data = self.info data = b64decode(data) tex = Texture.create(w, h, GL_RGB, GL_UNSIGNED_BYTE) tex.blit_buffer(data) self.screenshot = Image(tex) self.updated = False
def get_screen_texture(mode='back'): win = getWindow() if mode.lower() == 'front': glReadBuffer(GL_FRONT) else: glReadBuffer(GL_BACK) data = glReadPixels(0, 0, win.width, win.height, GL_RGB, GL_UNSIGNED_BYTE) # do a mini size = win.width / 10, win.height / 10 surf = pygame.image.fromstring(data, win.size, 'RGB') surf = pygame.transform.scale(surf, size) data = pygame.image.tostring(surf, 'RGB') tex = Texture.create(size[0], size[1], GL_RGB, rectangle=True) tex.blit_buffer(data) return tex, [size[0], size[1], data]