[PATCH 5/5] wined3d: Allow the existence of other shader types in get_loop_control_const().

Henri Verbeet hverbeet at codeweavers.com
Wed Jun 24 03:54:19 CDT 2009


---
 dlls/wined3d/arb_program_shader.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 8e965a6..3c34b18 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -4362,7 +4362,6 @@ static inline BOOL get_bool_const(const struct wined3d_shader_instruction *ins,
 static void get_loop_control_const(const struct wined3d_shader_instruction *ins,
         IWineD3DBaseShaderImpl *This, UINT idx, struct loop_control *loop_control)
 {
-    BOOL vshader = shader_is_vshader_version(This->baseShader.reg_maps.shader_version.type);
     struct shader_arb_ctx_priv *priv = ins->ctx->backend_data;
 
     /* Integer constants can either be a local constant, or they can be stored in the shader
@@ -4389,23 +4388,26 @@ static void get_loop_control_const(const struct wined3d_shader_instruction *ins,
         loop_control->step = 0;
         return;
     }
-    else
+
+    switch (This->baseShader.reg_maps.shader_version.type)
     {
-        if(vshader)
-        {
+        case WINED3D_SHADER_TYPE_VERTEX:
             /* Count and aL start value are unsigned */
             loop_control->count = priv->cur_vs_args->loop_ctrl[idx][0];
             loop_control->start = priv->cur_vs_args->loop_ctrl[idx][1];
             /* Step is signed. */
             loop_control->step = ((char)priv->cur_vs_args->loop_ctrl[idx][2]);
-        }
-        else
-        {
+            break;
+
+        case WINED3D_SHADER_TYPE_PIXEL:
             loop_control->count = priv->cur_ps_args->loop_ctrl[idx][0];
             loop_control->start = priv->cur_ps_args->loop_ctrl[idx][1];
             loop_control->step = ((char)priv->cur_ps_args->loop_ctrl[idx][2]);
-        }
-        return;
+            break;
+
+        default:
+            FIXME("Unhandled shader type %#x.\n", This->baseShader.reg_maps.shader_version.type);
+            break;
     }
 }
 
-- 
1.6.0.6




More information about the wine-patches mailing list