def __init__(self, wid, w, h, mmap_enabled, mmap): PixmapBacking.__init__(self, wid, w, h, mmap_enabled, mmap) display_mode = get_DISPLAY_MODE() try: self.glconfig = gtk.gdkgl.Config(mode=display_mode) except gtk.gdkgl.NoMatches: display_mode &= ~gtk.gdkgl.MODE_DOUBLE self.glconfig = gtk.gdkgl.Config(mode=display_mode) self.glarea = gtk.gtkgl.DrawingArea(self.glconfig) #restoring missed masks: self.glarea.set_events(self.glarea.get_events() | gdk.POINTER_MOTION_MASK | gdk.POINTER_MOTION_HINT_MASK) self.glarea.show() self.glarea.connect("expose_event", self.gl_expose_event) self.textures = None # OpenGL texture IDs self.yuv_shader = None self.pixel_format = None self.size = 0, 0 self.texture_size = 0, 0 self.gl_setup = False self.paint_screen = False self._video_use_swscale = False self.draw_needs_refresh = False self.offscreen_fbo = None
def init(self, w, h): #re-init gl context with new dimensions: self.gl_setup = False self.size = w, h # Re-create textures and shader self.pixel_format = None self.yuv_shader = None #also init the pixmap as backup: PixmapBacking.init(self, w, h)
def __init__(self, wid, w, h, mmap_enabled, mmap): PixmapBacking.__init__(self, wid, w, h, mmap_enabled, mmap) display_mode = gtk.gdkgl.MODE_RGB | gtk.gdkgl.MODE_DEPTH | gtk.gdkgl.MODE_DOUBLE try: self.glconfig = gtk.gdkgl.Config(mode=display_mode) except gtk.gdkgl.NoMatches: display_mode &= ~gtk.gdkgl.MODE_DOUBLE self.glconfig = gtk.gdkgl.Config(mode=display_mode) self.glarea = gtk.gtkgl.DrawingArea(self.glconfig) self.glarea.show() self.glarea.connect("expose_event", self.gl_expose_event) self.textures = None # OpenGL texture IDs self.yuv_shader = None self.pixel_format = None self.size = 0, 0 self.gl_setup = False self.paint_screen = False
def close(self): PixmapBacking.close(self) self.remove_shader() self.glarea = None self.glconfig = None
def close(self): PixmapBacking.close(self) self.glarea = None self.glconfig = None