[05/10] wined3d: Add WINED3DTEXOPCAPS flags and use them

H. Verbeet hverbeet at gmail.com
Wed Feb 14 16:30:46 CST 2007


Changelog:
  - Add WINED3DTEXOPCAPS flags and use them
-------------- next part --------------
---

 dlls/wined3d/directx.c         |   52 ++++++++++++++++++++--------------------
 dlls/wined3d/wined3d_private.h |    1 +
 include/wine/wined3d_caps.h    |   49 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 76 insertions(+), 26 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 7e2fc05..360f8f3 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -2130,48 +2130,48 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter,
 
     *pCaps->FVFCaps = D3DFVFCAPS_PSIZE | 0x0008; /* 8 texture coords */
 
-    *pCaps->TextureOpCaps =  D3DTEXOPCAPS_ADD         |
-                             D3DTEXOPCAPS_ADDSIGNED   |
-                             D3DTEXOPCAPS_ADDSIGNED2X |
-                             D3DTEXOPCAPS_MODULATE    |
-                             D3DTEXOPCAPS_MODULATE2X  |
-                             D3DTEXOPCAPS_MODULATE4X  |
-                             D3DTEXOPCAPS_SELECTARG1  |
-                             D3DTEXOPCAPS_SELECTARG2  |
-                             D3DTEXOPCAPS_DISABLE;
+    *pCaps->TextureOpCaps =  WINED3DTEXOPCAPS_ADD         |
+                             WINED3DTEXOPCAPS_ADDSIGNED   |
+                             WINED3DTEXOPCAPS_ADDSIGNED2X |
+                             WINED3DTEXOPCAPS_MODULATE    |
+                             WINED3DTEXOPCAPS_MODULATE2X  |
+                             WINED3DTEXOPCAPS_MODULATE4X  |
+                             WINED3DTEXOPCAPS_SELECTARG1  |
+                             WINED3DTEXOPCAPS_SELECTARG2  |
+                             WINED3DTEXOPCAPS_DISABLE;
 
     if (GL_SUPPORT(ARB_TEXTURE_ENV_COMBINE) ||
         GL_SUPPORT(EXT_TEXTURE_ENV_COMBINE) ||
         GL_SUPPORT(NV_TEXTURE_ENV_COMBINE4)) {
-        *pCaps->TextureOpCaps |= D3DTEXOPCAPS_BLENDDIFFUSEALPHA |
-                                D3DTEXOPCAPS_BLENDTEXTUREALPHA  |
-                                D3DTEXOPCAPS_BLENDFACTORALPHA   |
-                                D3DTEXOPCAPS_BLENDCURRENTALPHA  |
-                                D3DTEXOPCAPS_LERP               |
-                                D3DTEXOPCAPS_SUBTRACT;
+        *pCaps->TextureOpCaps |= WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA |
+                                WINED3DTEXOPCAPS_BLENDTEXTUREALPHA  |
+                                WINED3DTEXOPCAPS_BLENDFACTORALPHA   |
+                                WINED3DTEXOPCAPS_BLENDCURRENTALPHA  |
+                                WINED3DTEXOPCAPS_LERP               |
+                                WINED3DTEXOPCAPS_SUBTRACT;
     }
     if (GL_SUPPORT(ATI_TEXTURE_ENV_COMBINE3) ||
          GL_SUPPORT(NV_TEXTURE_ENV_COMBINE4)) {
-        *pCaps->TextureOpCaps |= D3DTEXOPCAPS_ADDSMOOTH             |
-                                D3DTEXOPCAPS_MULTIPLYADD            |
-                                D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR |
-                                D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA |
-                                D3DTEXOPCAPS_BLENDTEXTUREALPHAPM;
+        *pCaps->TextureOpCaps |= WINED3DTEXOPCAPS_ADDSMOOTH             |
+                                WINED3DTEXOPCAPS_MULTIPLYADD            |
+                                WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR |
+                                WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA |
+                                WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM;
     }
     if (GL_SUPPORT(ARB_TEXTURE_ENV_DOT3))
-        *pCaps->TextureOpCaps |= D3DTEXOPCAPS_DOTPRODUCT3;
+        *pCaps->TextureOpCaps |= WINED3DTEXOPCAPS_DOTPRODUCT3;
 
     if (GL_SUPPORT(NV_REGISTER_COMBINERS)) {
-        *pCaps->TextureOpCaps |= D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR |
-                                 D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA;
+        *pCaps->TextureOpCaps |= WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR |
+                                 WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA;
     }
     
     
 #if 0
-    *pCaps->TextureOpCaps |= D3DTEXOPCAPS_BUMPENVMAP;
+    *pCaps->TextureOpCaps |= WINED3DTEXOPCAPS_BUMPENVMAP;
                             /* FIXME: Add
-                            D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 
-                            D3DTEXOPCAPS_PREMODULATE */
+                            WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE 
+                            WINED3DTEXOPCAPS_PREMODULATE */
 #endif
 
     *pCaps->MaxTextureBlendStages   = GL_LIMITS(texture_stages);
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 6111f53..5bc141e 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -41,6 +41,7 @@
 #include "wined3d_private_types.h"
 #include "ddraw.h"
 #include "wine/wined3d_interface.h"
+#include "wine/wined3d_caps.h"
 #include "wine/wined3d_gl.h"
 #include "wine/list.h"
 
diff --git a/include/wine/wined3d_caps.h b/include/wine/wined3d_caps.h
new file mode 100644
index 0000000..4bf474b
--- /dev/null
+++ b/include/wine/wined3d_caps.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2007 Henri Verbeet
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_WINED3D_CAPS_H
+#define __WINE_WINED3D_CAPS_H
+
+#define WINED3DTEXOPCAPS_DISABLE                            0x00000001
+#define WINED3DTEXOPCAPS_SELECTARG1                         0x00000002
+#define WINED3DTEXOPCAPS_SELECTARG2                         0x00000004
+#define WINED3DTEXOPCAPS_MODULATE                           0x00000008
+#define WINED3DTEXOPCAPS_MODULATE2X                         0x00000010
+#define WINED3DTEXOPCAPS_MODULATE4X                         0x00000020
+#define WINED3DTEXOPCAPS_ADD                                0x00000040
+#define WINED3DTEXOPCAPS_ADDSIGNED                          0x00000080
+#define WINED3DTEXOPCAPS_ADDSIGNED2X                        0x00000100
+#define WINED3DTEXOPCAPS_SUBTRACT                           0x00000200
+#define WINED3DTEXOPCAPS_ADDSMOOTH                          0x00000400
+#define WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA                  0x00000800
+#define WINED3DTEXOPCAPS_BLENDTEXTUREALPHA                  0x00001000
+#define WINED3DTEXOPCAPS_BLENDFACTORALPHA                   0x00002000
+#define WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM                0x00004000
+#define WINED3DTEXOPCAPS_BLENDCURRENTALPHA                  0x00008000
+#define WINED3DTEXOPCAPS_PREMODULATE                        0x00010000
+#define WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR             0x00020000
+#define WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA             0x00040000
+#define WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR          0x00080000
+#define WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA          0x00100000
+#define WINED3DTEXOPCAPS_BUMPENVMAP                         0x00200000
+#define WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE                0x00400000
+#define WINED3DTEXOPCAPS_DOTPRODUCT3                        0x00800000
+#define WINED3DTEXOPCAPS_MULTIPLYADD                        0x01000000
+#define WINED3DTEXOPCAPS_LERP                               0x02000000
+
+#endif /* __WINE_WINED3D_CAPS_H */


More information about the wine-patches mailing list