Bind vertex buffer object extension functions. */
| 267 | |
| 268 | /** Bind vertex buffer object extension functions. */ |
| 269 | static bool BindVBOExtension() |
| 270 | { |
| 271 | if (IsOpenGLVersionAtLeast(1, 5)) { |
| 272 | if (!BindGLProc(_glGenBuffers, "glGenBuffers")) return false; |
| 273 | if (!BindGLProc(_glDeleteBuffers, "glDeleteBuffers")) return false; |
| 274 | if (!BindGLProc(_glBindBuffer, "glBindBuffer")) return false; |
| 275 | if (!BindGLProc(_glBufferData, "glBufferData")) return false; |
| 276 | if (!BindGLProc(_glBufferSubData, "glBufferSubData")) return false; |
| 277 | if (!BindGLProc(_glMapBuffer, "glMapBuffer")) return false; |
| 278 | if (!BindGLProc(_glUnmapBuffer, "glUnmapBuffer")) return false; |
| 279 | } else { |
| 280 | if (!BindGLProc(_glGenBuffers, "glGenBuffersARB")) return false; |
| 281 | if (!BindGLProc(_glDeleteBuffers, "glDeleteBuffersARB")) return false; |
| 282 | if (!BindGLProc(_glBindBuffer, "glBindBufferARB")) return false; |
| 283 | if (!BindGLProc(_glBufferData, "glBufferDataARB")) return false; |
| 284 | if (!BindGLProc(_glBufferSubData, "glBufferSubDataARB")) return false; |
| 285 | if (!BindGLProc(_glMapBuffer, "glMapBufferARB")) return false; |
| 286 | if (!BindGLProc(_glUnmapBuffer, "glUnmapBufferARB")) return false; |
| 287 | } |
| 288 | |
| 289 | if (IsOpenGLVersionAtLeast(4, 3) || IsOpenGLExtensionSupported("GL_ARB_clear_buffer_object")) { |
| 290 | BindGLProc(_glClearBufferSubData, "glClearBufferSubData"); |
| 291 | } else { |
| 292 | _glClearBufferSubData = nullptr; |
| 293 | } |
| 294 | |
| 295 | return true; |
| 296 | } |
| 297 | |
| 298 | /** Bind vertex array object extension functions. */ |
| 299 | static bool BindVBAExtension() |
no test coverage detected