Changeset 181:86db21c3a25d

Show
Ignore:
Timestamp:
05/21/08 17:55:46 (2 years ago)
Author:
Madtree <madtree@…>
Branch:
renderer
Message:

* Added VBO GL extensions check.

Location:
src
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • src/null/null_glimp.c

    r0 r181  
    2929void ( * qglClientActiveTextureARB )( GLenum texture ); 
    3030 
     31// GL_ARB_vertex_program 
     32void     (APIENTRY * qglVertexAttribPointerARB) (GLuint index, GLint size, GLenum type, GLboolean normalized, 
     33                                                       GLsizei stride, const GLvoid * pointer); 
     34void     (APIENTRY * qglEnableVertexAttribArrayARB) (GLuint index); 
     35void     (APIENTRY * qglDisableVertexAttribArrayARB) (GLuint index); 
    3136 
     37// GL_ARB_vertex_buffer_object 
     38void     (APIENTRY * qglBindBufferARB) (GLenum target, GLuint buffer); 
     39void     (APIENTRY * qglDeleteBuffersARB) (GLsizei n, const GLuint * buffers); 
     40void     (APIENTRY * qglGenBuffersARB) (GLsizei n, GLuint * buffers); 
     41         GLboolean(APIENTRY * qglIsBufferARB) (GLuint buffer); 
     42void     (APIENTRY * qglBufferDataARB) (GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage); 
     43void     (APIENTRY * qglBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data); 
     44void     (APIENTRY * qglGetBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid * data); 
     45GLvoid  *(APIENTRY * qglMapBufferARB) (GLenum target, GLenum access); 
     46         GLboolean(APIENTRY * qglUnmapBufferARB) (GLenum target); 
     47void     (APIENTRY * qglGetBufferParameterivARB) (GLenum target, GLenum pname, GLint * params); 
     48void     (APIENTRY * qglGetBufferPointervARB) (GLenum target, GLenum pname, GLvoid * *params); 
    3249void ( * qglLockArraysEXT)( int, int); 
    3350void ( * qglUnlockArraysEXT) ( void ); 
  • src/renderer/qgl.h

    r0 r181  
    3636extern void (APIENTRYP qglLockArraysEXT) (GLint first, GLsizei count); 
    3737extern void (APIENTRYP qglUnlockArraysEXT) (void); 
     38 
     39// GL_ARB_vertex_program 
     40extern void     (APIENTRY * qglVertexAttribPointerARB) (GLuint index, GLint size, GLenum type, GLboolean normalized, 
     41                                                        GLsizei stride, const GLvoid * pointer); 
     42extern void     (APIENTRY * qglEnableVertexAttribArrayARB) (GLuint index); 
     43extern void     (APIENTRY * qglDisableVertexAttribArrayARB) (GLuint index); 
     44 
     45// GL_ARB_vertex_buffer_object 
     46extern void     (APIENTRY * qglBindBufferARB) (GLenum target, GLuint buffer); 
     47extern void     (APIENTRY * qglDeleteBuffersARB) (GLsizei n, const GLuint * buffers); 
     48extern void     (APIENTRY * qglGenBuffersARB) (GLsizei n, GLuint * buffers); 
     49extern          GLboolean(APIENTRY * qglIsBufferARB) (GLuint buffer); 
     50extern void     (APIENTRY * qglBufferDataARB) (GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage); 
     51extern void     (APIENTRY * qglBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data); 
     52extern void     (APIENTRY * qglGetBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid * data); 
     53extern GLvoid  *(APIENTRY * qglMapBufferARB) (GLenum target, GLenum access); 
     54extern          GLboolean(APIENTRY * qglUnmapBufferARB) (GLenum target); 
     55extern void     (APIENTRY * qglGetBufferParameterivARB) (GLenum target, GLenum pname, GLint * params); 
     56extern void     (APIENTRY * qglGetBufferPointervARB) (GLenum target, GLenum pname, GLvoid * *params); 
    3857 
    3958 
  • src/sdl/sdl_glimp.c

    r177 r181  
    7878void (APIENTRYP qglLockArraysEXT) (GLint first, GLsizei count); 
    7979void (APIENTRYP qglUnlockArraysEXT) (void); 
     80 
     81// GL_ARB_vertex_program 
     82void     (APIENTRY * qglVertexAttribPointerARB) (GLuint index, GLint size, GLenum type, GLboolean normalized, 
     83                                                       GLsizei stride, const GLvoid * pointer); 
     84void     (APIENTRY * qglEnableVertexAttribArrayARB) (GLuint index); 
     85void     (APIENTRY * qglDisableVertexAttribArrayARB) (GLuint index); 
     86 
     87// GL_ARB_vertex_buffer_object 
     88void     (APIENTRY * qglBindBufferARB) (GLenum target, GLuint buffer); 
     89void     (APIENTRY * qglDeleteBuffersARB) (GLsizei n, const GLuint * buffers); 
     90void     (APIENTRY * qglGenBuffersARB) (GLsizei n, GLuint * buffers); 
     91         GLboolean(APIENTRY * qglIsBufferARB) (GLuint buffer); 
     92void     (APIENTRY * qglBufferDataARB) (GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage); 
     93void     (APIENTRY * qglBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data); 
     94void     (APIENTRY * qglGetBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid * data); 
     95GLvoid  *(APIENTRY * qglMapBufferARB) (GLenum target, GLenum access); 
     96         GLboolean(APIENTRY * qglUnmapBufferARB) (GLenum target); 
     97void     (APIENTRY * qglGetBufferParameterivARB) (GLenum target, GLenum pname, GLint * params); 
     98void     (APIENTRY * qglGetBufferPointervARB) (GLenum target, GLenum pname, GLvoid * *params); 
     99void ( * qglLockArraysEXT)( int, int); 
     100void ( * qglUnlockArraysEXT) ( void ); 
    80101 
    81102/* 
     
    586607                ri.Printf( PRINT_ALL, "...GL_EXT_texture_filter_anisotropic not found\n" ); 
    587608        } 
     609     
     610    // GL_ARB_vertex_program 
     611    qglVertexAttribPointerARB = NULL; 
     612    qglEnableVertexAttribArrayARB = NULL; 
     613    qglDisableVertexAttribArrayARB = NULL; 
     614    if(Q_stristr(glConfig.extensions_string, "GL_ARB_vertex_program")) 
     615    { 
     616        qglVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC) SDL_GL_GetProcAddress("glVertexAttribPointerARB"); 
     617        qglEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC) SDL_GL_GetProcAddress("glEnableVertexAttribArrayARB"); 
     618        qglDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) SDL_GL_GetProcAddress("glDisableVertexAttribArrayARB"); 
     619        ri.Printf(PRINT_ALL, "...using GL_ARB_vertex_program\n"); 
     620    } 
     621    else 
     622    { 
     623        ri.Error(ERR_FATAL, "...GL_ARB_vertex_program not found\n"); 
     624    } 
     625     
     626    // GL_ARB_vertex_buffer_object 
     627    qglBindBufferARB = NULL; 
     628    qglDeleteBuffersARB = NULL; 
     629    qglGenBuffersARB = NULL; 
     630    qglIsBufferARB = NULL; 
     631    qglBufferDataARB = NULL; 
     632    qglBufferSubDataARB = NULL; 
     633    qglGetBufferSubDataARB = NULL; 
     634    qglMapBufferARB = NULL; 
     635    qglUnmapBufferARB = NULL; 
     636    qglGetBufferParameterivARB = NULL; 
     637    qglGetBufferPointervARB = NULL; 
     638    if(Q_stristr(glConfig.extensions_string, "GL_ARB_vertex_buffer_object")) 
     639    { 
     640        qglBindBufferARB = (PFNGLBINDBUFFERARBPROC) SDL_GL_GetProcAddress("glBindBufferARB"); 
     641        qglDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC) SDL_GL_GetProcAddress("glDeleteBuffersARB"); 
     642        qglGenBuffersARB = (PFNGLGENBUFFERSARBPROC) SDL_GL_GetProcAddress("glGenBuffersARB"); 
     643        qglIsBufferARB = (PFNGLISBUFFERARBPROC) SDL_GL_GetProcAddress("glIsBufferARB"); 
     644        qglBufferDataARB = (PFNGLBUFFERDATAARBPROC) SDL_GL_GetProcAddress("glBufferDataARB"); 
     645        qglBufferSubDataARB = (PFNGLBUFFERSUBDATAARBPROC) SDL_GL_GetProcAddress("glBufferSubDataARB"); 
     646        qglGetBufferSubDataARB = (PFNGLGETBUFFERSUBDATAARBPROC) SDL_GL_GetProcAddress("glGetBufferSubDataARB"); 
     647        qglMapBufferARB = (PFNGLMAPBUFFERARBPROC) SDL_GL_GetProcAddress("glMapBufferARB"); 
     648        qglUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC) SDL_GL_GetProcAddress("glUnmapBufferARB"); 
     649        qglGetBufferParameterivARB = (PFNGLGETBUFFERPARAMETERIVARBPROC) SDL_GL_GetProcAddress("glGetBufferParameterivARB"); 
     650        qglGetBufferPointervARB = (PFNGLGETBUFFERPOINTERVARBPROC) SDL_GL_GetProcAddress("glGetBufferPointervARB"); 
     651        ri.Printf(PRINT_ALL, "...using GL_ARB_vertex_buffer_object\n"); 
     652    } 
     653    else 
     654    { 
     655        ri.Error(ERR_FATAL, "...GL_ARB_vertex_buffer_object not found\n"); 
     656    } 
     657     
    588658} 
    589659