From 4a1375bdd6c711044887110b31bdadfc889ce8f9 Mon Sep 17 00:00:00 2001 From: Jason Green Date: Thu, 18 May 2006 13:43:32 -0400 Subject: [PATCH] wined3d: Simplify generate_base_shader() when checking for USING_GLSL usage. --- dlls/wined3d/baseshader.c | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c index 98fa7953c75..6629d5842c9 100644 --- a/dlls/wined3d/baseshader.c +++ b/dlls/wined3d/baseshader.c @@ -551,6 +551,7 @@ void generate_base_shader( IWineD3DBaseShaderImpl* This = (IWineD3DBaseShaderImpl*) iface; const DWORD *pToken = pFunction; const SHADER_OPCODE *curOpcode = NULL; + SHADER_HANDLER hw_fct = NULL; DWORD opcode_token; DWORD i; @@ -568,10 +569,12 @@ void generate_base_shader( */ /* Pre-declare registers */ - if (USING_GLSL) + if (USING_GLSL) { generate_glsl_declarations(iface, buffer); - else + shader_addline(buffer, "void main() {\n"); + } else { generate_arb_declarations(iface, buffer); + } /* Second pass, process opcodes */ if (NULL != pToken) { @@ -595,28 +598,15 @@ void generate_base_shader( /* Read opcode */ opcode_token = *pToken++; curOpcode = shader_get_opcode(iface, opcode_token); + hw_fct = USING_GLSL ? curOpcode->hw_glsl_fct : curOpcode->hw_fct; /* Unknown opcode and its parameters */ if (NULL == curOpcode) { FIXME("Unrecognized opcode: token=%08lX\n", opcode_token); pToken += shader_skip_unrecognized(iface, pToken); - /* Using GLSL & no generator function exists */ - } else if (USING_GLSL && curOpcode->hw_glsl_fct == NULL) { - - FIXME("Token %s is not yet implemented with GLSL\n", curOpcode->name); - pToken += shader_skip_opcode(This, curOpcode, opcode_token); - - /* Unhandled opcode in ARB */ - } else if ( !USING_GLSL && GLNAME_REQUIRE_GLSL == curOpcode->glname) { - - FIXME("Token %s requires greater functionality than " - "Vertex or Fragment_Program_ARB supports\n", curOpcode->name); - pToken += shader_skip_opcode(This, curOpcode, opcode_token); - /* If a generator function is set for current shader target, use it */ - } else if ((!USING_GLSL && curOpcode->hw_fct != NULL) || - (USING_GLSL && curOpcode->hw_glsl_fct != NULL)) { + } else if (hw_fct != NULL) { SHADER_OPCODE_ARG hw_arg; @@ -656,10 +646,7 @@ void generate_base_shader( } /* Call appropriate function for output target */ - if (USING_GLSL) - curOpcode->hw_glsl_fct(&hw_arg); - else - curOpcode->hw_fct(&hw_arg); + hw_fct(&hw_arg); } else { -- 2.11.4.GIT