roc/video.py
cecilkorik 49f4256439 reorganized models.py
started adding universe basics
started adding gameobj basics
2011-06-18 22:59:58 -06:00

134 lines
3 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
import shader
height=None
width=None
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_in, height_in)):
global height, width
height = height_in
width = width_in
if height==0:
height=1
if width==0:
width=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)
def get_res():
return (height, width)
def get_height():
return height
def get_width():
return width
def init2d():
#print pygame.display.gl_get_attribute(GL_DEPTH_SIZE)
glViewport(0, 0, width, height)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(0.0, float(width), float(height), 0.0, 256.0, -256.0)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
#glRotatef(120.0, 1.0, 0.0, 0.0)
glClearColor(0.0, 0.0, 0.0, 0.0)
glClearDepth(-256.0)
glShadeModel(GL_SMOOTH)
glEnable(GL_DEPTH_TEST)
glEnable(GL_CULL_FACE)
glEnable(GL_TEXTURE_2D)
glDepthFunc(GL_GEQUAL)
glEnable(GL_BLEND)
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST)
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, (0.3, 0.3, 0.3, 1.0))
shader.mgr.load()
shader.mgr.init_gl()
shader.mgr.select("ffp")
glDisable(GL_LIGHTING)
def init3d():
#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()
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.load()
shader.mgr.init_gl()
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()