Jason Green : wined3d: Place # of textures, addresses, & temps used inside the baseShader struct to prepare for GenerateShader merge .

Alexandre Julliard julliard at wine.codeweavers.com
Wed May 10 05:22:46 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: cc2ea9e08ce968b39731e6fa0d08ffdbe02a775f
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=cc2ea9e08ce968b39731e6fa0d08ffdbe02a775f

Author: Jason Green <jave27 at gmail.com>
Date:   Tue May  9 22:31:09 2006 -0400

wined3d: Place # of textures, addresses, & temps used inside the baseShader struct to prepare for GenerateShader merge.

---

 dlls/wined3d/baseshader.c      |    8 +++++---
 dlls/wined3d/pixelshader.c     |    5 ++++-
 dlls/wined3d/vertexshader.c    |    5 ++++-
 dlls/wined3d/wined3d_private.h |    6 +++---
 4 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index b065336..2b28cdb 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -96,9 +96,11 @@ const SHADER_OPCODE* shader_get_opcode(
 
 void shader_get_registers_used(
     IWineD3DBaseShader *iface,
-    CONST DWORD* pToken, 
-    DWORD* tempsUsed, 
-    DWORD* texUsed) {
+    CONST DWORD* pToken) {
+
+    IWineD3DBaseShaderImpl* This = (IWineD3DBaseShaderImpl*) iface;
+    DWORD* tempsUsed = &This->baseShader.temps_used;
+    DWORD* texUsed = &This->baseShader.textures_used;
 
     if (pToken == NULL)
         return;
diff --git a/dlls/wined3d/pixelshader.c b/dlls/wined3d/pixelshader.c
index a93178a..22691b0 100644
--- a/dlls/wined3d/pixelshader.c
+++ b/dlls/wined3d/pixelshader.c
@@ -1337,7 +1337,10 @@ #endif
         This->constants[i] = 0;
 
     /* First pass: figure out which temporary and texture registers are used */
-    shader_get_registers_used((IWineD3DBaseShader*) This, pToken, &tempsUsed, &texUsed);
+    shader_get_registers_used((IWineD3DBaseShader*) This, pToken);
+    texUsed = This->baseShader.textures_used;
+    tempsUsed = This->baseShader.temps_used;
+
     TRACE("Texture registers used: %#lx, Temp registers used %#lx\n", texUsed, tempsUsed);
 
     /* TODO: check register usage against GL/Directx limits, and fail if they're exceeded */
diff --git a/dlls/wined3d/vertexshader.c b/dlls/wined3d/vertexshader.c
index 8a67a1a..a055095 100644
--- a/dlls/wined3d/vertexshader.c
+++ b/dlls/wined3d/vertexshader.c
@@ -1153,7 +1153,10 @@ #endif
     buffer.lineNo = 0;
 
     /* First pass: figure out which temporary and texture registers are used */
-    shader_get_registers_used((IWineD3DBaseShader*) This, pToken, &tempsUsed, &addressUsed);
+    shader_get_registers_used((IWineD3DBaseShader*) This, pToken);
+    addressUsed = This->baseShader.textures_used;
+    tempsUsed = This->baseShader.temps_used;
+
     TRACE("Address registers used: %#lx, Temp registers used %#lx\n", addressUsed, tempsUsed);
 
     /* TODO: check register usage against GL/Directx limits, and fail if they're exceeded
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 31a8b83..ab36d82 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1260,6 +1260,8 @@ typedef struct IWineD3DBaseShaderClass
 {
     DWORD                           version;
     DWORD                           hex_version;
+    DWORD                           temps_used;
+    DWORD                           textures_used;
     SHADER_LIMITS                   limits;
     SHADER_PARSE_STATE              parse_state;
     CONST SHADER_OPCODE             *shader_ins;
@@ -1279,9 +1281,7 @@ typedef struct IWineD3DBaseShaderImpl {
 
 extern void shader_get_registers_used(
     IWineD3DBaseShader *iface,
-    CONST DWORD* pToken,
-    DWORD* tempsUsed,
-    DWORD* texUsed);
+    CONST DWORD* pToken);
 
 extern void shader_program_dump_decl_usage(
     DWORD dcl,




More information about the wine-cvs mailing list