From 7de2fa267048bdb25f5b36fca957030f65f556d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Sat, 11 Jun 2011 15:39:30 +0200 Subject: [PATCH] wined3d: Add GL_ARB_draw_elements_base_vertex. --- dlls/wined3d/directx.c | 1 + dlls/wined3d/wined3d_gl.h | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 1dd2cba1cf1..34eea8213d8 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -55,6 +55,7 @@ static const struct { {"GL_ARB_depth_clamp", ARB_DEPTH_CLAMP, 0 }, {"GL_ARB_depth_texture", ARB_DEPTH_TEXTURE, 0 }, {"GL_ARB_draw_buffers", ARB_DRAW_BUFFERS, 0 }, + {"GL_ARB_draw_elements_base_vertex", ARB_DRAW_ELEMENTS_BASE_VERTEX, 0 }, {"GL_ARB_fragment_program", ARB_FRAGMENT_PROGRAM, 0 }, {"GL_ARB_fragment_shader", ARB_FRAGMENT_SHADER, 0 }, {"GL_ARB_framebuffer_object", ARB_FRAMEBUFFER_OBJECT, 0 }, diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h index be50b2f672b..85e5feab4b1 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -1738,6 +1738,7 @@ typedef enum wined3d_gl_extension ARB_DEPTH_CLAMP, ARB_DEPTH_TEXTURE, ARB_DRAW_BUFFERS, + ARB_DRAW_ELEMENTS_BASE_VERTEX, ARB_FRAGMENT_PROGRAM, ARB_FRAGMENT_SHADER, ARB_FRAMEBUFFER_OBJECT, @@ -1965,6 +1966,19 @@ typedef void (WINE_GLAPI *PGLFNCLAMPCOLORARBPROC)(GLenum target, GLenum clamp); #endif typedef void (WINE_GLAPI *PGLFNDRAWBUFFERSARBPROC)(GLsizei n, const GLenum *bufs); +/* GL_ARB_draw_elements_base_vertex */ +#ifndef GL_ARB_draw_elements_base_vertex +#define GL_ARB_draw_elements_base_vertex 1 +typedef void (WINE_GLAPI *PGLFNDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, + const GLvoid *indices, GLint basevertex); +typedef void (WINE_GLAPI *PGLFNDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, + GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +typedef void (WINE_GLAPI *PGLFNDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, + GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex); +typedef void (WINE_GLAPI *PGLFNMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei *count, GLenum type, + const GLvoid **indices, GLsizei primcount, GLint *basevertex); +#endif + /* GL_ARB_fragment_program */ #ifndef GL_ARB_fragment_program #define GL_ARB_fragment_program 1 @@ -3789,6 +3803,15 @@ typedef BOOL (WINAPI *WINED3D_PFNWGLSWAPINTERVALEXTPROC)(int interval); /* GL_ARB_draw_buffers */ \ USE_GL_FUNC(PGLFNDRAWBUFFERSARBPROC, \ glDrawBuffersARB, ARB_DRAW_BUFFERS, NULL) \ + /* GL_ARB_draw_elements_base_vertex */ \ + USE_GL_FUNC(PGLFNDRAWELEMENTSBASEVERTEXPROC, \ + glDrawElementsBaseVertex, ARB_DRAW_ELEMENTS_BASE_VERTEX, NULL) \ + USE_GL_FUNC(PGLFNDRAWRANGEELEMENTSBASEVERTEXPROC, \ + glDrawRangeElementsBaseVertex, ARB_DRAW_ELEMENTS_BASE_VERTEX, NULL) \ + USE_GL_FUNC(PGLFNDRAWELEMENTSINSTANCEDBASEVERTEXPROC, \ + glDrawElementsInstancedBaseVertex, ARB_DRAW_ELEMENTS_BASE_VERTEX, NULL) \ + USE_GL_FUNC(PGLFNMULTIDRAWELEMENTSBASEVERTEXPROC, \ + glMultiDrawElementsBaseVertex, ARB_DRAW_ELEMENTS_BASE_VERTEX, NULL) \ /* GL_ARB_framebuffer_object */ \ USE_GL_FUNC(PGLFNGLISRENDERBUFFERPROC, \ glIsRenderbuffer, ARB_FRAMEBUFFER_OBJECT, NULL) \