wined3d: Simplify generate_base_shader() when checking for USING_GLSL usage.
This commit is contained in:
parent
683e5bfc55
commit
4a1375bdd6
|
@ -551,6 +551,7 @@ void generate_base_shader(
|
||||||
IWineD3DBaseShaderImpl* This = (IWineD3DBaseShaderImpl*) iface;
|
IWineD3DBaseShaderImpl* This = (IWineD3DBaseShaderImpl*) iface;
|
||||||
const DWORD *pToken = pFunction;
|
const DWORD *pToken = pFunction;
|
||||||
const SHADER_OPCODE *curOpcode = NULL;
|
const SHADER_OPCODE *curOpcode = NULL;
|
||||||
|
SHADER_HANDLER hw_fct = NULL;
|
||||||
DWORD opcode_token;
|
DWORD opcode_token;
|
||||||
DWORD i;
|
DWORD i;
|
||||||
|
|
||||||
|
@ -568,10 +569,12 @@ void generate_base_shader(
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Pre-declare registers */
|
/* Pre-declare registers */
|
||||||
if (USING_GLSL)
|
if (USING_GLSL) {
|
||||||
generate_glsl_declarations(iface, buffer);
|
generate_glsl_declarations(iface, buffer);
|
||||||
else
|
shader_addline(buffer, "void main() {\n");
|
||||||
|
} else {
|
||||||
generate_arb_declarations(iface, buffer);
|
generate_arb_declarations(iface, buffer);
|
||||||
|
}
|
||||||
|
|
||||||
/* Second pass, process opcodes */
|
/* Second pass, process opcodes */
|
||||||
if (NULL != pToken) {
|
if (NULL != pToken) {
|
||||||
|
@ -595,28 +598,15 @@ void generate_base_shader(
|
||||||
/* Read opcode */
|
/* Read opcode */
|
||||||
opcode_token = *pToken++;
|
opcode_token = *pToken++;
|
||||||
curOpcode = shader_get_opcode(iface, opcode_token);
|
curOpcode = shader_get_opcode(iface, opcode_token);
|
||||||
|
hw_fct = USING_GLSL ? curOpcode->hw_glsl_fct : curOpcode->hw_fct;
|
||||||
|
|
||||||
/* Unknown opcode and its parameters */
|
/* Unknown opcode and its parameters */
|
||||||
if (NULL == curOpcode) {
|
if (NULL == curOpcode) {
|
||||||
FIXME("Unrecognized opcode: token=%08lX\n", opcode_token);
|
FIXME("Unrecognized opcode: token=%08lX\n", opcode_token);
|
||||||
pToken += shader_skip_unrecognized(iface, pToken);
|
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 */
|
/* If a generator function is set for current shader target, use it */
|
||||||
} else if ((!USING_GLSL && curOpcode->hw_fct != NULL) ||
|
} else if (hw_fct != NULL) {
|
||||||
(USING_GLSL && curOpcode->hw_glsl_fct != NULL)) {
|
|
||||||
|
|
||||||
SHADER_OPCODE_ARG hw_arg;
|
SHADER_OPCODE_ARG hw_arg;
|
||||||
|
|
||||||
|
@ -656,10 +646,7 @@ void generate_base_shader(
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Call appropriate function for output target */
|
/* Call appropriate function for output target */
|
||||||
if (USING_GLSL)
|
hw_fct(&hw_arg);
|
||||||
curOpcode->hw_glsl_fct(&hw_arg);
|
|
||||||
else
|
|
||||||
curOpcode->hw_fct(&hw_arg);
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue