bool qt_resolve_buffer_extensions(QGLContext *ctx) { #if defined(QGL_RESOLVE_BUFFER_FUNCS) if (glBindBuffer && glDeleteBuffers && glGenBuffers && glBufferData && glBufferSubData && glGetBufferParameteriv) return true; #endif #if defined(QGL_RESOLVE_BUFFER_FUNCS) glBindBuffer = (_glBindBuffer) qt_gl_getProcAddressARB(ctx, "glBindBuffer"); glDeleteBuffers = (_glDeleteBuffers) qt_gl_getProcAddressARB(ctx, "glDeleteBuffers"); glGenBuffers = (_glGenBuffers) qt_gl_getProcAddressARB(ctx, "glGenBuffers"); glBufferData = (_glBufferData) qt_gl_getProcAddressARB(ctx, "glBufferData"); glBufferSubData = (_glBufferSubData) qt_gl_getProcAddressARB(ctx, "glBufferSubData"); glGetBufferSubData = (_glGetBufferSubData) qt_gl_getProcAddressARB(ctx, "glGetBufferSubData"); glGetBufferParameteriv = (_glGetBufferParameteriv) qt_gl_getProcAddressARB(ctx, "glGetBufferParameteriv"); #endif glMapBufferARB = (_glMapBufferARB) qt_gl_getProcAddressARB(ctx, "glMapBuffer"); glUnmapBufferARB = (_glUnmapBufferARB) qt_gl_getProcAddressARB(ctx, "glUnmapBuffer"); #if defined(QGL_RESOLVE_BUFFER_FUNCS) return glBindBuffer && glDeleteBuffers && glGenBuffers && glBufferData && glBufferSubData && glGetBufferParameteriv; // glGetBufferSubData() is optional #else return true; #endif }
bool qt_resolve_buffer_extensions(QGLContext *ctx) { if (glMapBufferARB && glUnmapBufferARB #if !defined(QT_OPENGL_ES_2) && glBindBuffer && glDeleteBuffers && glGenBuffers && glBufferData #endif ) return true; #if !defined(QT_OPENGL_ES_2) glBindBuffer = (_glBindBuffer) qt_gl_getProcAddressARB(ctx, "glBindBuffer"); glDeleteBuffers = (_glDeleteBuffers) qt_gl_getProcAddressARB(ctx, "glDeleteBuffers"); glGenBuffers = (_glGenBuffers) qt_gl_getProcAddressARB(ctx, "glGenBuffers"); glBufferData = (_glBufferData) qt_gl_getProcAddressARB(ctx, "glBufferData"); #endif glMapBufferARB = (_glMapBufferARB) qt_gl_getProcAddressARB(ctx, "glMapBuffer"); glUnmapBufferARB = (_glUnmapBufferARB) qt_gl_getProcAddressARB(ctx, "glUnmapBuffer"); return glMapBufferARB && glUnmapBufferARB #if !defined(QT_OPENGL_ES_2) && glBindBuffer && glDeleteBuffers && glGenBuffers && glBufferData #endif ; }
bool qt_resolve_buffer_extensions(QGLContext *ctx) { if (!QGLContextPrivate::extensionFuncs(ctx).qt_bufferFuncsResolved) { #if defined(QGL_RESOLVE_BUFFER_FUNCS) glBindBuffer = (_glBindBuffer) qt_gl_getProcAddressARB(ctx, "glBindBuffer"); glDeleteBuffers = (_glDeleteBuffers) qt_gl_getProcAddressARB(ctx, "glDeleteBuffers"); glGenBuffers = (_glGenBuffers) qt_gl_getProcAddressARB(ctx, "glGenBuffers"); glBufferData = (_glBufferData) qt_gl_getProcAddressARB(ctx, "glBufferData"); glBufferSubData = (_glBufferSubData) qt_gl_getProcAddressARB(ctx, "glBufferSubData"); glGetBufferSubData = (_glGetBufferSubData) qt_gl_getProcAddressARB(ctx, "glGetBufferSubData"); glGetBufferParameteriv = (_glGetBufferParameteriv) qt_gl_getProcAddressARB(ctx, "glGetBufferParameteriv"); #endif #ifdef QT_OPENGL_ES_2 QGLExtensionMatcher extensions; if (extensions.match("GL_OES_mapbuffer")) { glMapBufferARB = (_glMapBufferARB) qt_gl_getProcAddressARB(ctx, "glMapBufferOES"); glUnmapBufferARB = (_glUnmapBufferARB) qt_gl_getProcAddressARB(ctx, "glUnmapBufferOES"); } #else glMapBufferARB = (_glMapBufferARB) qt_gl_getProcAddressARB(ctx, "glMapBuffer"); glUnmapBufferARB = (_glUnmapBufferARB) qt_gl_getProcAddressARB(ctx, "glUnmapBuffer"); #endif QGLContextPrivate::extensionFuncs(ctx).qt_bufferFuncsResolved = true; } #if defined(QGL_RESOLVE_BUFFER_FUNCS) return glBindBuffer && glDeleteBuffers && glGenBuffers && glBufferData && glBufferSubData && glGetBufferParameteriv; // glGetBufferSubData() is optional #else return true; #endif }