Jason Green : wined3d: Simplify generate_base_shader()
when checking for USING_GLSL usage.
Alexandre Julliard
julliard at wine.codeweavers.com
Sat May 20 11:22:55 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 4a1375bdd6c711044887110b31bdadfc889ce8f9
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=4a1375bdd6c711044887110b31bdadfc889ce8f9
Author: Jason Green <jave27 at gmail.com>
Date: Thu May 18 13:43:32 2006 -0400
wined3d: Simplify generate_base_shader() when checking for USING_GLSL usage.
---
dlls/wined3d/baseshader.c | 29 ++++++++---------------------
1 files changed, 8 insertions(+), 21 deletions(-)
diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index 98fa795..6629d58 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 {
More information about the wine-cvs
mailing list