コード例 #1
0
def configure_event(widget, event, data):
    '''The "configure_event" signal handler. Any processing required when
    the OpenGL-capable drawing area is re-configured should be done here.
    Almost always it will be used to resize the OpenGL viewport when
    the window is resized.'''

    allocation = widget.get_allocation()
    w = allocation.width
    h = allocation.height

    # OpenGL BEGIN
    if not GtkGLExt.widget_begin_gl(widget):
        return False

    GL.glViewport(0, 0, w, h)
    GL.glMatrixMode(GL.GL_PROJECTION)
    GL.glLoadIdentity()
    GL.glOrtho(-50., 50., -50., 50., -1., 1.)
    GL.glMatrixMode(GL.GL_MODELVIEW)
    GL.glLoadIdentity()

    GtkGLExt.widget_end_gl(widget, False)
    # OpenGL END

    return True
コード例 #2
0
def realize(widget, data):
    '''The "realize" signal handler. All the OpenGL initialization
    should be performed here, such as default background colour,
    certain states etc.'''

    # OpenGL BEGIN
    if not GtkGLExt.widget_begin_gl(widget):
        return

    GL.glClearColor(0., 0., 0., 0.)
    GL.glShadeModel(GL.GL_FLAT)

    GtkGLExt.widget_end_gl(widget, False)
コード例 #3
0
def draw (widget, cr, data):
    '''The "draw" signal handler. All the OpenGL re-drawing should
    be done here. This is repeatedly called as the painting routine
    every time the 'draw' event is signalled.'''

    # OpenGL BEGIN
    if not GtkGLExt.widget_begin_gl(widget):
        return False

    GL.glClear(GL.GL_COLOR_BUFFER_BIT)

    GL.glPushMatrix()
    GL.glRotatef(spin, 0., 0., 1.)
    GL.glColor3f(1., 1., 1.)
    GL.glRectf(-25., -25., 25., 25.)
    GL.glPopMatrix()

    GtkGLExt.widget_end_gl(widget, True)
    # OpenGL END

    return True
コード例 #4
0
 def __enter__(self):
     #self.context = GtkGLExt.widget_create_gl_context(self.widget)
     assert GtkGLExt.widget_begin_gl(self.widget)
コード例 #5
0
ファイル: gtk_compat.py プロジェクト: ljmljz/xpra
 def __enter__(self):
     #self.context = GtkGLExt.widget_create_gl_context(self.widget)
     assert GtkGLExt.widget_begin_gl(self.widget)