create GLSL programs from shader sources
This commit is contained in:
parent
af989f07ee
commit
25082e9b1b
@ -8,6 +8,34 @@ import getopt
|
||||
from OpenGL.GL import *
|
||||
from OpenGL.GLU import *
|
||||
|
||||
def make_program(v_fname, f_fname):
|
||||
vfh = open(v_fname, 'r')
|
||||
v_source = vfh.read()
|
||||
vfh.close()
|
||||
ffh = open(f_fname, 'r')
|
||||
f_source = ffh.read()
|
||||
ffh.close()
|
||||
|
||||
v_id = glCreateShader(GL_VERTEX_SHADER)
|
||||
f_id = glCreateShader(GL_FRAGMENT_SHADER)
|
||||
|
||||
glShaderSource(v_id, [v_source])
|
||||
glShaderSource(f_id, [f_source])
|
||||
|
||||
glCompileShader(v_id)
|
||||
glCompileShader(f_id)
|
||||
|
||||
p_id = glCreateProgram()
|
||||
glAttachShader(p_id, v_id)
|
||||
glAttachShader(p_id, f_id)
|
||||
|
||||
glLinkProgram(p_id)
|
||||
|
||||
glDeleteShader(v_id)
|
||||
glDeleteShader(f_id)
|
||||
|
||||
return p_id
|
||||
|
||||
def main(argv):
|
||||
options, args = getopt.getopt(argv[1:], '')
|
||||
if len(args) == 0:
|
||||
@ -21,6 +49,16 @@ def main(argv):
|
||||
window.UseVerticalSync(True)
|
||||
window.SetActive(True)
|
||||
|
||||
plain_program = make_program('v_shader.glsl', 'f_shader.glsl')
|
||||
tex_program = make_program('v_tex_shader.glsl', 'f_tex_shader.glsl')
|
||||
|
||||
if plain_program == 0:
|
||||
sys.stderr.write('plain_program did not build successfully\n')
|
||||
return 2
|
||||
if tex_program == 0:
|
||||
sys.sterr.write('tex_program did not build successfully\n')
|
||||
return 2
|
||||
|
||||
glClearDepth(1)
|
||||
glClearColor(0, 0, 0, 0)
|
||||
glEnable(GL_LIGHTING)
|
||||
|
Loading…
x
Reference in New Issue
Block a user