[v2 1/2] wined3d: Implement primitive restart index.
Andrew Wesie
awesie at gmail.com
Thu Nov 17 21:44:06 CST 2016
Signed-off-by: Andrew Wesie <awesie at gmail.com>
---
dlls/wined3d/directx.c | 1 +
dlls/wined3d/glsl_shader.c | 10 ++++++++++
dlls/wined3d/wined3d_gl.h | 1 +
3 files changed, 12 insertions(+)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 6588d1c..393bc1a 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -122,6 +122,7 @@ static const struct wined3d_extension_map gl_extension_map[] =
{"GL_ARB_draw_elements_base_vertex", ARB_DRAW_ELEMENTS_BASE_VERTEX },
{"GL_ARB_draw_instanced", ARB_DRAW_INSTANCED },
{"GL_ARB_ES2_compatibility", ARB_ES2_COMPATIBILITY },
+ {"GL_ARB_ES3_compatibility", ARB_ES3_COMPATIBILITY },
{"GL_ARB_explicit_attrib_location", ARB_EXPLICIT_ATTRIB_LOCATION },
{"GL_ARB_fragment_coord_conventions", ARB_FRAGMENT_COORD_CONVENTIONS},
{"GL_ARB_fragment_program", ARB_FRAGMENT_PROGRAM },
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 9e9c83b..0c83d2a 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -8602,6 +8602,16 @@ static void shader_glsl_init_context_state(struct wined3d_context *context)
gl_info->gl_ops.gl.p_glEnable(GL_PROGRAM_POINT_SIZE);
checkGLcall("GL_PROGRAM_POINT_SIZE");
+ if (gl_info->supported[ARB_ES3_COMPATIBILITY])
+ {
+ /* We prefer this method because it correctly handles 16-bit and 32-bit indices. */
+ gl_info->gl_ops.gl.p_glEnable(GL_PRIMITIVE_RESTART_FIXED_INDEX);
+ checkGLcall("GL_PRIMITIVE_RESTART_FIXED_INDEX");
+ }
+ else
+ {
+ WARN("Missing support for primitive restart index.\n");
+ }
}
static void shader_glsl_get_caps(const struct wined3d_gl_info *gl_info, struct shader_caps *caps)
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h
index b71190d..7bd2d6a 100644
--- a/dlls/wined3d/wined3d_gl.h
+++ b/dlls/wined3d/wined3d_gl.h
@@ -55,6 +55,7 @@ enum wined3d_gl_extension
ARB_DRAW_ELEMENTS_BASE_VERTEX,
ARB_DRAW_INSTANCED,
ARB_ES2_COMPATIBILITY,
+ ARB_ES3_COMPATIBILITY,
ARB_EXPLICIT_ATTRIB_LOCATION,
ARB_FRAGMENT_COORD_CONVENTIONS,
ARB_FRAGMENT_PROGRAM,
--
2.7.4
More information about the wine-patches
mailing list