Henri Verbeet : wined3d: Use EXT_provoking_vertex to match Direct3D' s provoking vertex convention.

Alexandre Julliard julliard at winehq.org
Mon Aug 10 10:35:56 CDT 2009


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Mon Aug 10 09:30:50 2009 +0200

wined3d: Use EXT_provoking_vertex to match Direct3D's provoking vertex convention.

---

 dlls/d3d9/tests/visual.c |   11 +++++++++--
 dlls/wined3d/context.c   |    6 ++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index 2a86be8..d4fabf3 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -6586,8 +6586,15 @@ static void shademode_test(IDirect3DDevice9 *device)
             switch(shademode) {
                 case D3DSHADE_FLAT:
                     /* Should take the color of the first vertex of each triangle */
-                    todo_wine ok(color0 == 0x00ff0000, "FLAT shading has color0 %08x, expected 0x00ff0000 (todo)\n", color0);
-                    todo_wine ok(color1 == 0x0000ff00, "FLAT shading has color1 %08x, expected 0x0000ff00 (todo)\n", color1);
+                    if (0)
+                    {
+                        /* This test depends on EXT_provoking_vertex being
+                         * available. This extension is currently (20090810)
+                         * not common enough to let the test fail if it isn't
+                         * present. */
+                        ok(color0 == 0x00ff0000, "FLAT shading has color0 %08x, expected 0x00ff0000\n", color0);
+                        ok(color1 == 0x0000ff00, "FLAT shading has color1 %08x, expected 0x0000ff00\n", color1);
+                    }
                     shademode = D3DSHADE_GOURAUD;
                     break;
                 case D3DSHADE_GOURAUD:
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 0737079..09743c6 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1357,6 +1357,12 @@ struct wined3d_context *CreateContext(IWineD3DDeviceImpl *This, IWineD3DSurfaceI
         glTexEnvi(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE);
         checkGLcall("glTexEnvi(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE)");
     }
+
+    if (GL_SUPPORT(EXT_PROVOKING_VERTEX))
+    {
+        GL_EXTCALL(glProvokingVertexEXT(GL_FIRST_VERTEX_CONVENTION_EXT));
+    }
+
     LEAVE_GL();
 
     This->frag_pipe->enable_extension((IWineD3DDevice *) This, TRUE);




More information about the wine-cvs mailing list