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