[PATCH 4/5] wined3d: Take geometry shaders into account in shader_glsl_load_constantsB().
Henri Verbeet
hverbeet at codeweavers.com
Fri Jul 10 03:20:14 CDT 2009
---
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)
--
1.6.0.6
More information about the wine-patches
mailing list