X-Git-Url: http://git.mutantstargoat.com?p=gl4;a=blobdiff_plain;f=main.c;h=de73cdc370c5eeaa13d8c60ed1a88b487c938c81;hp=3f503bf33caf51a9b5e1cb37f943df5bb18c43d7;hb=HEAD;hpb=a49ce4174d286b07ed74d66b3c0f77d489efd67d diff --git a/main.c b/main.c index 3f503bf..de73cdc 100644 --- a/main.c +++ b/main.c @@ -42,7 +42,6 @@ struct matrix_state { float lpos[3]; } __attribute__((packed)); -unsigned int sampler; unsigned int tex; int init(void); @@ -103,8 +102,6 @@ int main(int argc, char **argv) int init(void) { - unsigned int uloc_matrix; - glDebugMessageCallback(gldebug, 0); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); @@ -119,10 +116,6 @@ int init(void) return -1; } - glGenSamplers(1, &sampler); - glSamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - glSamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - if(gen_torus(&torus, 1.0, 0.25, 32, 12) == -1) { return -1; } @@ -137,18 +130,11 @@ int init(void) } #endif - if(link_program(sdr) == -1) { - fprintf(stderr, "failed to bind attribute locations\n"); - return -1; - } - glUseProgram(sdr); glGenBuffers(1, &ubo_matrix); glBindBuffer(GL_UNIFORM_BUFFER, ubo_matrix); glBufferData(GL_UNIFORM_BUFFER, sizeof matrix_state, &matrix_state, GL_STREAM_DRAW); - uloc_matrix = glGetUniformBlockIndex(sdr, "matrix_state"); - glUniformBlockBinding(sdr, uloc_matrix, UBLOCK_MATRIX); return 0; } @@ -165,7 +151,7 @@ void cleanup(void) glDeleteVertexArrays(1, &torus.vao); } glDeleteTextures(1, &tex); - glDeleteSamplers(1, &sampler); + glDeleteBuffers(1, &ubo_matrix); } void display(void) @@ -196,11 +182,9 @@ void display(void) glBindBufferBase(GL_UNIFORM_BUFFER, UBLOCK_MATRIX, ubo_matrix); glBindTexture(GL_TEXTURE_2D, tex); - glBindSampler(0, sampler); draw_mesh(&torus); - glBindSampler(0, 0); - //assert(glGetError() == GL_NO_ERROR); + assert(glGetError() == GL_NO_ERROR); glutSwapBuffers(); } @@ -487,6 +471,10 @@ unsigned int load_program(const char *vfname, const char *pfname) glDeleteProgram(prog); return 0; } + + glDetachShader(prog, vs); + glDetachShader(prog, ps); + return prog; }