import sys, math, time from OpenGL.GLUT import * from OpenGL.GL import * from OpenGL.GLU import * import Image useViewport = False useScissor = False def draw(): glDisable(GL_SCISSOR_TEST) glClearColor(1,0,0,0) glClear(GL_COLOR_BUFFER_BIT) if useViewport: glViewport(100,100,350,350) else: glViewport(0,0,glutGet(GLUT_WINDOW_WIDTH),glutGet(GLUT_WINDOW_HEIGHT)) if useScissor: glScissor(100,100,350,350) glEnable(GL_SCISSOR_TEST) else: glDisable(GL_SCISSOR_TEST) glClearColor(0,0,0,0) glClear(GL_COLOR_BUFFER_BIT) glBegin(GL_TRIANGLES) glVertex2f(-1.2,-1.2) glVertex2f(1.2,-1.2) glVertex2f(0,1.2) glEnd() glutSwapBuffers() def keyboard(key, x, y): global useViewport, useScissor if key == chr(27): sys.exit(0) elif key == 'v': useViewport = not useViewport elif key == 's': useScissor = not useScissor def idle(): glutPostRedisplay() glutInit([]) glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB) glutInitWindowSize(500, 500) glutInitWindowPosition(0,0) glutCreateWindow(sys.argv[0]) glutDisplayFunc(draw) glutKeyboardFunc(keyboard) glutIdleFunc(idle) glutMainLoop()