Stefan Dösinger : wined3d: Add proper input register handling to texreg2ar/gb.
Alexandre Julliard
julliard at winehq.org
Mon Oct 1 07:55:03 CDT 2007
Module: wine
Branch: master
Commit: 1c18112339cdeba99acad928894ada743ef69a83
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1c18112339cdeba99acad928894ada743ef69a83
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Wed Sep 5 17:13:04 2007 +0200
wined3d: Add proper input register handling to texreg2ar/gb.
---
dlls/wined3d/arb_program_shader.c | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 1fc3338..526e435 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -1090,12 +1090,13 @@ void pshader_hw_texreg2ar(SHADER_OPCODE_ARG* arg) {
DWORD flags;
DWORD reg1 = arg->dst & WINED3DSP_REGNUM_MASK;
- DWORD reg2 = arg->src[0] & WINED3DSP_REGNUM_MASK;
char dst_str[8];
+ char src_str[50];
sprintf(dst_str, "T%u", reg1);
- shader_addline(buffer, "MOV TMP.r, T%u.a;\n", reg2);
- shader_addline(buffer, "MOV TMP.g, T%u.r;\n", reg2);
+ pshader_gen_input_modifier_line(buffer, arg->src[0], 0, src_str);
+ shader_addline(buffer, "MOV TMP.r, %s.a;\n", src_str);
+ shader_addline(buffer, "MOV TMP.g, %s.r;\n", src_str);
flags = reg1 < MAX_TEXTURES ? deviceImpl->stateBlock->textureState[reg1][WINED3DTSS_TEXTURETRANSFORMFLAGS] : 0;
shader_hw_sample(arg, reg1, dst_str, "TMP", flags & WINED3DTTFF_PROJECTED, FALSE);
}
@@ -1108,12 +1109,13 @@ void pshader_hw_texreg2gb(SHADER_OPCODE_ARG* arg) {
DWORD flags;
DWORD reg1 = arg->dst & WINED3DSP_REGNUM_MASK;
- DWORD reg2 = arg->src[0] & WINED3DSP_REGNUM_MASK;
char dst_str[8];
+ char src_str[50];
sprintf(dst_str, "T%u", reg1);
- shader_addline(buffer, "MOV TMP.r, T%u.g;\n", reg2);
- shader_addline(buffer, "MOV TMP.g, T%u.b;\n", reg2);
+ pshader_gen_input_modifier_line(buffer, arg->src[0], 0, src_str);
+ shader_addline(buffer, "MOV TMP.r, %s.g;\n", src_str);
+ shader_addline(buffer, "MOV TMP.g, %s.b;\n", src_str);
flags = reg1 < MAX_TEXTURES ? deviceImpl->stateBlock->textureState[reg1][WINED3DTSS_TEXTURETRANSFORMFLAGS] : 0;
shader_hw_sample(arg, reg1, dst_str, "TMP", FALSE, FALSE);
}
More information about the wine-cvs
mailing list