H. Verbeet : wined3d: Handle the ps_3_0 vPos field.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri May 4 07:11:13 CDT 2007
Module: wine
Branch: master
Commit: 89245248c739273f2f2c2e09443a10bc1cdfcc29
URL: http://source.winehq.org/git/wine.git/?a=commit;h=89245248c739273f2f2c2e09443a10bc1cdfcc29
Author: H. Verbeet <hverbeet at gmail.com>
Date: Thu May 3 21:01:09 2007 +0200
wined3d: Handle the ps_3_0 vPos field.
---
dlls/wined3d/baseshader.c | 8 ++++++++
dlls/wined3d/glsl_shader.c | 12 ++++++++++++
2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index 2944663..8035abb 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -519,6 +519,7 @@ void shader_dump_param(
IWineD3DBaseShaderImpl* This = (IWineD3DBaseShaderImpl*) iface;
static const char * const rastout_reg_names[] = { "oPos", "oFog", "oPts" };
+ static const char * const misctype_reg_names[] = { "vPos", "vFace"};
char swizzle_reg_chars[4];
DWORD reg = param & WINED3DSP_REGNUM_MASK;
@@ -611,6 +612,13 @@ void shader_dump_param(
case WINED3DSPR_SAMPLER:
TRACE("s%u", reg);
break;
+ case WINED3DSPR_MISCTYPE:
+ if (reg > 1) {
+ FIXME("Unhandled misctype register %d\n", reg);
+ } else {
+ TRACE("%s", misctype_reg_names[reg]);
+ }
+ break;
case WINED3DSPR_PREDICATE:
TRACE("p%u", reg);
break;
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index f6d55d1..9ff5378 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -690,6 +690,18 @@ static void shader_glsl_get_register_name(
else
sprintf(tmpStr, "gl_TexCoord[%u]", reg);
break;
+ case WINED3DSPR_MISCTYPE:
+ if (reg == 0) {
+ /* vPos */
+ sprintf(tmpStr, "gl_FragCoord");
+ } else {
+ /* gl_FrontFacing could be used for vFace, but note that
+ * gl_FrontFacing is a bool, while vFace is a float for
+ * which the sign determines front/back */
+ FIXME("Unhandled misctype register %d\n", reg);
+ sprintf(tmpStr, "unrecognized_register");
+ }
+ break;
default:
FIXME("Unhandled register name Type(%d)\n", regtype);
sprintf(tmpStr, "unrecognized_register");
More information about the wine-cvs
mailing list