Henri Verbeet : wined3d: Take geometry shaders into account in shader_glsl_load_constantsB().

Alexandre Julliard julliard at winehq.org
Fri Jul 10 08:52:03 CDT 2009


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Fri Jul 10 10:20:14 2009 +0200

wined3d: Take geometry shaders into account in shader_glsl_load_constantsB().

---

 dlls/wined3d/glsl_shader.c |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 7402a79..83511aa 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -502,10 +502,30 @@ static void shader_glsl_load_constantsB(IWineD3DBaseShaderImpl *This, const Wine
     GLint tmp_loc;
     unsigned int i;
     char tmp_name[8];
-    char is_pshader = shader_is_pshader_version(This->baseShader.reg_maps.shader_version.type);
-    const char* prefix = is_pshader? "PB":"VB";
+    const char *prefix;
     struct list* ptr;
 
+    switch (This->baseShader.reg_maps.shader_version.type)
+    {
+        case WINED3D_SHADER_TYPE_VERTEX:
+            prefix = "VB";
+            break;
+
+        case WINED3D_SHADER_TYPE_GEOMETRY:
+            prefix = "GB";
+            break;
+
+        case WINED3D_SHADER_TYPE_PIXEL:
+            prefix = "PB";
+            break;
+
+        default:
+            FIXME("Unknown shader type %#x.\n",
+                    This->baseShader.reg_maps.shader_version.type);
+            prefix = "UB";
+            break;
+    }
+
     /* TODO: Benchmark and see if it would be beneficial to store the
      * locations of the constants to avoid looking up each time */
     for (i = 0; constants_set; constants_set >>= 1, ++i)




More information about the wine-cvs mailing list