Henri Verbeet : wined3d: Add support for ARB_provoking_vertex.

Alexandre Julliard julliard at winehq.org
Wed Sep 23 11:03:09 CDT 2009


Module: wine
Branch: master
Commit: eca28c942d61528e02eca7ca402f36161381c87e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=eca28c942d61528e02eca7ca402f36161381c87e

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Sep 23 10:05:58 2009 +0200

wined3d: Add support for ARB_provoking_vertex.

This is just EXT_provoking_vertex promoted to ARB.

---

 dlls/wined3d/context.c    |    6 +++++-
 dlls/wined3d/directx.c    |    1 +
 dlls/wined3d/wined3d_gl.h |   14 ++++++++++++++
 3 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 878e5bf..e569e6e 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1362,7 +1362,11 @@ struct wined3d_context *CreateContext(IWineD3DDeviceImpl *This, IWineD3DSurfaceI
         checkGLcall("glTexEnvi(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE)");
     }
 
-    if (GL_SUPPORT(EXT_PROVOKING_VERTEX))
+    if (GL_SUPPORT(ARB_PROVOKING_VERTEX))
+    {
+        GL_EXTCALL(glProvokingVertex(GL_FIRST_VERTEX_CONVENTION));
+    }
+    else if (GL_SUPPORT(EXT_PROVOKING_VERTEX))
     {
         GL_EXTCALL(glProvokingVertexEXT(GL_FIRST_VERTEX_CONVENTION_EXT));
     }
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 2f4cdae..7b46c0f 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -72,6 +72,7 @@ static const struct {
     {"GL_ARB_pixel_buffer_object",          ARB_PIXEL_BUFFER_OBJECT,        0                           },
     {"GL_ARB_point_parameters",             ARB_POINT_PARAMETERS,           0                           },
     {"GL_ARB_point_sprite",                 ARB_POINT_SPRITE,               0                           },
+    {"GL_ARB_provoking_vertex",             ARB_PROVOKING_VERTEX,           0                           },
     {"GL_ARB_texture_border_clamp",         ARB_TEXTURE_BORDER_CLAMP,       0                           },
     {"GL_ARB_texture_compression",          ARB_TEXTURE_COMPRESSION,        0                           },
     {"GL_ARB_texture_cube_map",             ARB_TEXTURE_CUBE_MAP,           0                           },
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h
index 1c9ce6c..1030931 100644
--- a/dlls/wined3d/wined3d_gl.h
+++ b/dlls/wined3d/wined3d_gl.h
@@ -1884,6 +1884,17 @@ typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target,
 #endif
 typedef void (WINE_GLAPI * PGLFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param);
 typedef void (WINE_GLAPI * PGLFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params);
+
+/* GL_ARB_provoking_vertex */
+#ifndef GL_ARB_provoking_vertex
+#define GL_ARB_provoking_vertex 1
+#define GL_FIRST_VERTEX_CONVENTION                      0x8e4d
+#define GL_LAST_VERTEX_CONVENTION                       0x8e4e
+#define GL_PROVOKING_VERTEX                             0x8e4f
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION     0x8e4c
+#endif
+typedef void (WINE_GLAPI * PGLFNGLPROVOKINGVERTEXPROC)(GLenum mode);
+
 /* GL_ARB_vertex_blend */
 #ifndef GL_ARB_vertex_blend
 #define GL_ARB_vertex_blend 1
@@ -3549,6 +3560,7 @@ typedef enum _GL_SupportedExt {
   ARB_MULTITEXTURE,
   ARB_OCCLUSION_QUERY,
   ARB_POINT_PARAMETERS,
+  ARB_PROVOKING_VERTEX,
   ARB_PIXEL_BUFFER_OBJECT,
   ARB_POINT_SPRITE,
   ARB_TEXTURE_COMPRESSION,
@@ -3714,6 +3726,8 @@ typedef enum _GL_SupportedExt {
     /* GL_ARB_point_parameters */ \
     USE_GL_FUNC(PGLFNGLPOINTPARAMETERFARBPROC,                      glPointParameterfARB,                       ARB_POINT_PARAMETERS,   NULL )\
     USE_GL_FUNC(PGLFNGLPOINTPARAMETERFVARBPROC,                     glPointParameterfvARB,                      ARB_POINT_PARAMETERS,   NULL )\
+    /* GL_ARB_provoking_vertex */ \
+    USE_GL_FUNC(PGLFNGLPROVOKINGVERTEXPROC,                         glProvokingVertex,                          ARB_PROVOKING_VERTEX,   NULL)\
     /* GL_ARB_texture_compression */ \
     USE_GL_FUNC(PGLFNCOMPRESSEDTEXIMAGE2DPROC,                      glCompressedTexImage2DARB,                  ARB_TEXTURE_COMPRESSION,NULL )\
     USE_GL_FUNC(PGLFNCOMPRESSEDTEXIMAGE3DPROC,                      glCompressedTexImage3DARB,                  ARB_TEXTURE_COMPRESSION,NULL )\




More information about the wine-cvs mailing list