nuclear@2: #include nuclear@2: #include nuclear@1: #include "opengl.h" nuclear@0: #include "istereo.h" nuclear@2: #include "sanegl.h" nuclear@2: #include "sdr.h" nuclear@2: nuclear@2: unsigned int prog; nuclear@0: nuclear@0: int init(void) nuclear@0: { nuclear@2: if(!(prog = create_program_load("sdr/test.v.glsl", "sdr/test.p.glsl"))) { nuclear@2: fprintf(stderr, "failed to load shader program\n"); nuclear@2: return -1; nuclear@2: } nuclear@2: nuclear@0: return 0; nuclear@0: } nuclear@0: nuclear@0: void cleanup(void) nuclear@0: { nuclear@2: free_program(prog); nuclear@0: } nuclear@0: nuclear@0: void redraw(void) nuclear@0: { nuclear@0: glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); nuclear@2: nuclear@2: bind_program(prog); nuclear@2: nuclear@2: gl_matrix_mode(GL_MODELVIEW); nuclear@2: gl_load_identity(); nuclear@2: gl_translatef(0, 0, -8); nuclear@2: nuclear@2: gl_apply_xform(prog); nuclear@2: nuclear@2: gl_begin(GL_QUADS); nuclear@2: gl_color3f(1, 0, 0); nuclear@2: gl_vertex3f(-1, -1, 0); nuclear@2: gl_color3f(0, 1, 0); nuclear@2: gl_vertex3f(1, -1, 0); nuclear@2: gl_color3f(0, 0, 1); nuclear@2: gl_vertex3f(1, 1, 0); nuclear@2: gl_color3f(1, 1, 0); nuclear@2: gl_vertex3f(-1, 1, 0); nuclear@2: gl_end(); nuclear@2: nuclear@2: assert(glGetError() == GL_NO_ERROR); nuclear@0: } nuclear@2: nuclear@2: void reshape(int x, int y) nuclear@2: { nuclear@2: glViewport(0, 0, x, y); nuclear@2: nuclear@2: gl_matrix_mode(GL_PROJECTION); nuclear@2: gl_load_identity(); nuclear@2: glu_perspective(45.0, (float)x / (float)y, 1.0, 1000.0); nuclear@2: }