def __init__(self): super(Application, self).__init__() self.lastFrameTime = time.time() self.runTime = 0 self.angle = 0 self.camera = Camera.Camera() self.mouse_move_valid = False self.mouse_last_x = None self.mouse_last_y = None self.scene = SolarSystemScene.SolarSystemScene() # Culling type. GL_BACK is the default. # glCullFace(GL_BACK) # glCullFace(GL_FRONT_AND_BACK) glEnable(GL_CULL_FACE) glEnable(GL_DEPTH_TEST) # glEnable(GL_BLEND) # glBlendFunc(GL_SRC_ALPHA_SATURATE, GL_ONE) # glEnable(GL_POLYGON_SMOOTH) # glHint (GL_LINE_SMOOTH_HINT, GL_DONT_CARE) glLineWidth (1.5) # glDisable(GL_CULL_FACE) glMatrixMode(GL_MODELVIEW) glEnable(GL_LIGHTING) glShadeModel(GL_SMOOTH) # Open GL only supports up to 8 lights. num_lights = len(self.scene.lights) for light_num in range(min(num_lights, 8)): print("Setting light " + str(light_num)) glEnable(get_light_enum(light_num)) if(num_lights > 8): print("Warning: More than 8 lights detected in scene.") self.lastFrameTime = time.time() # Drawing initializations. red = (0.8, 0.1, 0.0, 1.0) self.triangle1 = glGenLists(1) glNewList(self.triangle1, GL_COMPILE) glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red) ds.TriangleEquil() glEndList() self.cube1 = glGenLists(1) glNewList(self.cube1, GL_COMPILE) glPolygonMode(GL_FRONT, GL_FILL) ds.DrawCube() glEndList() self.skybox = glGenLists(1) glNewList(self.skybox, GL_COMPILE) glPolygonMode(GL_FRONT, GL_FILL) ds.DrawSkybox() glEndList() #Skybox texture if(self.scene.skybox_tex != None): self.skybox_name = GLuint() glPixelStorei(GL_UNPACK_ALIGNMENT, 1) glGenTextures(1, self.skybox_name) glBindTexture(GL_TEXTURE_2D, self.skybox_name) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST) glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, self.scene.skybox_tex_dim, self.scene.skybox_tex_dim, 0, GL_RGBA, GL_UNSIGNED_BYTE, self.scene.skybox_tex)