X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=vrlugburz;a=blobdiff_plain;f=src%2Fopengl.c;fp=src%2Fopengl.c;h=8eadb97e7ea209cd02c171264ca3d582f9b7f90c;hp=aa17885fa899ae6a10e0f0e76597819a924043c5;hb=5c66bff3dc3b2fdf8b57908de4ebcfc6da6e3597;hpb=f3d32774e0c196175d8143c21313097bcc8ff3a2 diff --git a/src/opengl.c b/src/opengl.c index aa17885..8eadb97 100644 --- a/src/opengl.c +++ b/src/opengl.c @@ -28,11 +28,21 @@ int init_opengl(void) return -1; } + if(glcaps.ver_major >= 2 || glcaps.ver_minor >= 5 || (strstr(glext, "GL_ARB_vertex_buffer_object"))) { + glcaps.vbo = 1; + } + if(glcaps.ver_major >= 2 || (strstr(glext, "GL_ARB_vertex_shader") && strstr(glext, "GL_ARB_fragment_shader"))) { glcaps.sdr = 1; } -#ifndef LOADEXT_SDR + if(glcaps.vbo) { + LOADPROC(PFNGLGENBUFFERSPROC, glGenBuffers); + LOADPROC(PFNGLDELETEBUFFERSPROC, glDeleteBuffers); + LOADPROC(PFNGLBINDBUFFERPROC, glBindBuffer); + LOADPROC(PFNGLBUFFERDATAPROC, glBufferData); + } + if(glcaps.sdr) { LOADPROC(PFNGLCREATEPROGRAMPROC, glCreateProgram); LOADPROC(PFNGLDELETEPROGRAMPROC, glDeleteProgram); @@ -56,8 +66,11 @@ int init_opengl(void) LOADPROC(PFNGLCOMPILESHADERPROC, glCompileShader); LOADPROC(PFNGLGETSHADERIVPROC, glGetShaderiv); LOADPROC(PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog); + LOADPROC(PFNGLBINDATTRIBLOCATIONPROC, glBindAttribLocation); + LOADPROC(PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray); + LOADPROC(PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray); + LOADPROC(PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer); } -#endif return 0; }