def render(self): glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glLoadIdentity() self.__camera.render() for object in self.__objects: object.render() self.__pygame_display.flip()
def render(self, visibility = 1.0, topMost = False): try: # Save and clear both transformation matrices glMatrixMode(GL_PROJECTION) glPushMatrix() glLoadIdentity() glMatrixMode(GL_MODELVIEW) glPushMatrix() glLoadIdentity() # Draw the polygon and apply texture glBindTexture(GL_TEXTURE_2D, self.animTexs[self.curFrame]) self.animList() # Restore both transformation matrices glPopMatrix() glMatrixMode(GL_PROJECTION) glPopMatrix() except: Log.error("AnimationPlayer: Error attempting to play animation")
def render(self, visibility, topMost): font = self.engine.data.font # render the scene try: glMatrixMode(GL_PROJECTION) glPushMatrix() glLoadIdentity() gluPerspective(60, self.engine.view.aspectRatio, 0.1, 1000) glMatrixMode(GL_MODELVIEW) glLoadIdentity() glPushMatrix() self.camera.apply() self.render3D() finally: glPopMatrix() glMatrixMode(GL_PROJECTION) glPopMatrix() glMatrixMode(GL_MODELVIEW)
def draw(self, color = (1, 1, 1, 1), rect = (0,1,0,1), lOffset = 0.0, rOffset = 0.0): with cmglPushedSpecificMatrix(GL_TEXTURE): with cmglPushedSpecificMatrix(GL_PROJECTION): with cmglMatrixMode(GL_PROJECTION): self.context.setProjection() with cmglPushedMatrix(): glLoadIdentity() self._getEffectiveTransform().applyGL() glScalef(self.texture.pixelSize[0], self.texture.pixelSize[1], 1) glTranslatef(-.5, -.5, 0) glColor4f(*color) glEnable(GL_TEXTURE_2D) self.texture.bind() self.triangVtx[0,0] = 0.0-lOffset self.triangVtx[0,1] = 1.0 self.triangVtx[1,0] = 1.0-rOffset self.triangVtx[1,1] = 1.0 self.triangVtx[2,0] = 0.0+lOffset self.triangVtx[2,1] = 0.0 self.triangVtx[3,0] = 1.0+rOffset self.triangVtx[3,1] = 0.0 self.textriangVtx[0,0] = rect[0] self.textriangVtx[0,1] = rect[3] self.textriangVtx[1,0] = rect[1] self.textriangVtx[1,1] = rect[3] self.textriangVtx[2,0] = rect[0] self.textriangVtx[2,1] = rect[2] self.textriangVtx[3,0] = rect[1] self.textriangVtx[3,1] = rect[2] cmglDrawArrays(GL_TRIANGLE_STRIP, vertices=self.triangVtx, texcoords=self.textriangVtx) glDisable(GL_TEXTURE_2D)
def setOrthogonalProjection(self, normalize = True, yIsDown = True): glMatrixMode(GL_PROJECTION) glPushMatrix() glLoadIdentity() if normalize: if yIsDown: glOrtho(self.geometryNormalized[0], self.geometryNormalized[2] - self.geometryNormalized[0], self.geometryNormalized[3] - self.geometryNormalized[1], self.geometryNormalized[1], -100, 100); else: glOrtho(self.geometryNormalized[0], self.geometryNormalized[2] - self.geometryNormalized[0], self.geometryNormalized[1], self.geometryNormalized[3] - self.geometryNormalized[1], -100, 100); else: if yIsDown: glOrtho(self.geometry[0], self.geometry[2] - self.geometry[0], self.geometry[3] - self.geometry[1], self.geometry[1], -100, 100); else: glOrtho(self.geometry[0], self.geometry[2] - self.geometry[0], self.geometry[1], self.geometry[3] - self.geometry[1], -100, 100); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity();
def setProjection(self, geometry = None): geometry = geometry or self.geometry with cmglMatrixMode(GL_PROJECTION): glLoadIdentity() glOrtho(geometry[0], geometry[0] + geometry[2], geometry[1], geometry[1] + geometry[3], -100, 100) self.geometry = geometry