diff --git a/pywfobj-view.py b/pywfobj-view.py index 392854c..2754398 100755 --- a/pywfobj-view.py +++ b/pywfobj-view.py @@ -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)