Stefan Dösinger : wined3d: Reinstall the projected texture disabling for generated coords.
Alexandre Julliard
julliard at winehq.org
Fri Nov 9 07:44:20 CST 2007
Module: wine
Branch: master
Commit: d050b4de9ea7100c9b4bccaef8c423ed5260a4dc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d050b4de9ea7100c9b4bccaef8c423ed5260a4dc
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Wed Nov 7 23:10:33 2007 +0100
wined3d: Reinstall the projected texture disabling for generated coords.
---
dlls/wined3d/utils.c | 62 +++++++++++++++++++++++++------------------------
1 files changed, 32 insertions(+), 30 deletions(-)
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index bd1d7d3..e108fca 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -2500,37 +2500,39 @@ void set_texture_matrix(const float *smat, DWORD flags, BOOL calculatedCoords, B
mat[2] = mat[6] = mat[10] = mat[14] = 0;
break;
}
- } else if(!calculatedCoords) { /* under directx the R/Z coord can be used for translation, under opengl we use the Q coord instead */
- switch(coordtype) {
- case WINED3DDECLTYPE_FLOAT1:
- /* Direct3D passes the default 1.0 in the 2nd coord, while gl passes it in the 4th.
- * swap 2nd and 4th coord. No need to store the value of mat[12] in mat[4] because
- * the input value to the transformation will be 0, so the matrix value is irrelevant
- */
- mat[12] = mat[4];
- mat[13] = mat[5];
- mat[14] = mat[6];
- mat[15] = mat[7];
- break;
- case WINED3DDECLTYPE_FLOAT2:
- /* See above, just 3rd and 4th coord
- */
- mat[12] = mat[8];
- mat[13] = mat[9];
- mat[14] = mat[10];
- mat[15] = mat[11];
- break;
- case WINED3DDECLTYPE_FLOAT3: /* Opengl defaults match dx defaults */
- case WINED3DDECLTYPE_FLOAT4: /* No defaults apply, all app defined */
+ } else { /* under directx the R/Z coord can be used for translation, under opengl we use the Q coord instead */
+ if(!calculatedCoords) {
+ switch(coordtype) {
+ case WINED3DDECLTYPE_FLOAT1:
+ /* Direct3D passes the default 1.0 in the 2nd coord, while gl passes it in the 4th.
+ * swap 2nd and 4th coord. No need to store the value of mat[12] in mat[4] because
+ * the input value to the transformation will be 0, so the matrix value is irrelevant
+ */
+ mat[12] = mat[4];
+ mat[13] = mat[5];
+ mat[14] = mat[6];
+ mat[15] = mat[7];
+ break;
+ case WINED3DDECLTYPE_FLOAT2:
+ /* See above, just 3rd and 4th coord
+ */
+ mat[12] = mat[8];
+ mat[13] = mat[9];
+ mat[14] = mat[10];
+ mat[15] = mat[11];
+ break;
+ case WINED3DDECLTYPE_FLOAT3: /* Opengl defaults match dx defaults */
+ case WINED3DDECLTYPE_FLOAT4: /* No defaults apply, all app defined */
- /* This is to prevent swaping the matrix lines and put the default 4th coord = 1.0
- * into a bad place. The division elimination below will apply to make sure the
- * 1.0 doesn't do anything bad. The caller will set this value if the stride is 0
- */
- case WINED3DDECLTYPE_UNUSED: /* No texture coords, 0/0/0/1 defaults are passed */
- break;
- default:
- FIXME("Unexpected fixed function texture coord input\n");
+ /* This is to prevent swaping the matrix lines and put the default 4th coord = 1.0
+ * into a bad place. The division elimination below will apply to make sure the
+ * 1.0 doesn't do anything bad. The caller will set this value if the stride is 0
+ */
+ case WINED3DDECLTYPE_UNUSED: /* No texture coords, 0/0/0/1 defaults are passed */
+ break;
+ default:
+ FIXME("Unexpected fixed function texture coord input\n");
+ }
}
switch (flags & ~WINED3DTTFF_PROJECTED) {
/* case WINED3DTTFF_COUNT1: Won't ever get here */
More information about the wine-cvs
mailing list