From d1cd08b7b35ddabfd3a699e562781d5d17216bd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 25 Jun 2009 19:32:04 +0200 Subject: [PATCH] wined3d: Honor WINED3DSPSM_NOT in ARB. --- dlls/wined3d/arb_program_shader.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index aa8d068e136..21fc14c578a 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -4644,6 +4644,7 @@ static void shader_arb_handle_instruction(const struct wined3d_shader_instructio IWineD3DBaseShaderImpl *This = (IWineD3DBaseShaderImpl *)ins->ctx->shader; struct control_frame *control_frame; SHADER_BUFFER *buffer = ins->ctx->buffer; + BOOL bool_const; if(ins->handler_idx == WINED3DSIH_LOOP || ins->handler_idx == WINED3DSIH_REP) { @@ -4767,7 +4768,9 @@ static void shader_arb_handle_instruction(const struct wined3d_shader_instructio list_add_head(&priv->control_frames, &control_frame->entry); control_frame->type = IF; - if(!priv->muted && get_bool_const(ins, This, ins->src[0].reg.idx) == FALSE) + bool_const = get_bool_const(ins, This, ins->src[0].reg.idx); + if(ins->src[0].modifiers == WINED3DSPSM_NOT) bool_const = !bool_const; + if(!priv->muted && bool_const == FALSE) { shader_addline(buffer, "#if(FALSE){\n"); priv->muted = TRUE;