80 lines
2 KiB
Python
Executable file
80 lines
2 KiB
Python
Executable file
#!/usr/bin/env python2.4
|
|
|
|
from OpenGL.GL import *
|
|
from OpenGL.GLU import *
|
|
from OpenGL.arrays import GLcharArray
|
|
import pygame
|
|
from pygame.locals import *
|
|
import sys
|
|
|
|
def enable_vsync():
|
|
if sys.platform != 'darwin':
|
|
return
|
|
try:
|
|
import ctypes
|
|
import ctypes.util
|
|
ogl = ctypes.cdll.LoadLibrary(ctypes.util.find_library("OpenGL"))
|
|
v = ctypes.c_int(1)
|
|
ogl.CGLSetParameter(ogl.CGLGetCurrentContext(), ctypes.c_int(222), ctypes.pointer(v))
|
|
except:
|
|
print "Unable to set vsync mode, using driver defaults"
|
|
def skipping_next_frame():
|
|
return False
|
|
def set_res((width, height)):
|
|
if height==0:
|
|
height=1
|
|
pygame.display.gl_set_attribute(GL_DEPTH_SIZE, 24)
|
|
video_flags = OPENGL|DOUBLEBUF
|
|
#video_flags = OPENGL|DOUBLEBUF|FULLSCREEN
|
|
pygame.display.set_mode((width, height), video_flags)
|
|
#print pygame.display.gl_get_attribute(GL_DEPTH_SIZE)
|
|
glViewport(0, 0, width, height)
|
|
glMatrixMode(GL_PROJECTION)
|
|
glLoadIdentity()
|
|
gluPerspective(45, 1.0*width/height, 1.0, 10e6)
|
|
glMatrixMode(GL_MODELVIEW)
|
|
glLoadIdentity()
|
|
|
|
def init():
|
|
import shader
|
|
glShadeModel(GL_SMOOTH)
|
|
glClearColor(0.0, 0.0, 0.0, 0.0)
|
|
glClearDepth(1.0)
|
|
glEnable(GL_DEPTH_TEST)
|
|
glEnable(GL_CULL_FACE)
|
|
glEnable(GL_TEXTURE_2D)
|
|
glDepthFunc(GL_LEQUAL)
|
|
#glEnable(GL_BLEND)
|
|
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST)
|
|
glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 0)
|
|
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 1)
|
|
"""
|
|
"""
|
|
LightAmbient = ( (0.2, 0.2, 0.2, 1.0) )
|
|
LightDiffuse = ( (0.5, 0.5, 0.5, 1.0) )
|
|
LightPosition = ( (0.0, 0.2, 2.0, 1.0) )
|
|
glEnable(GL_LIGHTING)
|
|
glLightfv( GL_LIGHT1, GL_AMBIENT, LightAmbient )
|
|
glLightfv( GL_LIGHT1, GL_DIFFUSE, LightDiffuse )
|
|
glLightfv( GL_LIGHT1, GL_POSITION, LightPosition )
|
|
glEnable( GL_LIGHT1 )
|
|
"""
|
|
"""
|
|
shader.mgr.select("standard")
|
|
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, (0.3, 0.3, 0.3, 1.0))
|
|
#glEnable(GL_AUTO_NORMAL)
|
|
|
|
def predraw():
|
|
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
|
|
glLoadIdentity()
|
|
|
|
#glTranslatef(-1.0, 0.0, -9.0)
|
|
glRotatef(270.0, 1.0, 0.0, 0.0)
|
|
|
|
def next_frame():
|
|
pygame.display.flip()
|
|
|
|
|
|
|
|
if __name__ == '__main__': main()
|
|
|