[PATCH 1/2] wined3d: Check for support before calling glDrawElementsInstancedBaseVertex.

Stefan Dösinger stefan at codeweavers.com
Mon Nov 4 05:38:33 CST 2013


---
 dlls/wined3d/drawprim.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
index 3c9a780..2475644 100644
--- a/dlls/wined3d/drawprim.c
+++ b/dlls/wined3d/drawprim.c
@@ -52,9 +52,18 @@ static void drawStridedFast(const struct wined3d_gl_info *gl_info, GLenum primit
             {
                 if (start_instance)
                     FIXME("Start instance (%u) not supported.\n", start_instance);
-                GL_EXTCALL(glDrawElementsInstancedBaseVertex(primitive_type, count, idxtype,
-                        (const char *)idx_data + (idx_size * start_idx), instance_count, base_vertex_index));
-                checkGLcall("glDrawElementsInstancedBaseVertex");
+                if (gl_info->supported[ARB_DRAW_ELEMENTS_BASE_VERTEX])
+                {
+                    GL_EXTCALL(glDrawElementsInstancedBaseVertex(primitive_type, count, idxtype,
+                            (const char *)idx_data + (idx_size * start_idx), instance_count, base_vertex_index));
+                    checkGLcall("glDrawElementsInstancedBaseVertex");
+                }
+                else
+                {
+                    GL_EXTCALL(glDrawElementsInstancedARB(primitive_type, count, idxtype,
+                            (const char *)idx_data + (idx_size * start_idx), instance_count));
+                    checkGLcall("glDrawElementsInstancedARB");
+                }
             }
         }
         else if (gl_info->supported[ARB_DRAW_ELEMENTS_BASE_VERTEX])
-- 
1.8.1.5




More information about the wine-patches mailing list