From 38cb9d02b10a8e69e0696b399f13aa2dd91d11a3 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Fri, 10 Jul 2009 10:20:14 +0200 Subject: [PATCH] wined3d: Take geometry shaders into account in shader_glsl_load_constantsB(). --- dlls/wined3d/glsl_shader.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 7402a793faa..83511aab885 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) -- 2.11.4.GIT