Stefan Dösinger : wined3d: GL_SRC_ALPHA_SATURATE is supported as src blend param only.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Aug 17 06:30:41 CDT 2007


Module: wine
Branch: master
Commit: 06cc0fa95fcca3805bdbfb99475f0d09758385e4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=06cc0fa95fcca3805bdbfb99475f0d09758385e4

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Sun Aug 12 21:38:24 2007 +0200

wined3d: GL_SRC_ALPHA_SATURATE is supported as src blend param only.

---

 dlls/wined3d/directx.c |    4 +++-
 dlls/wined3d/state.c   |    6 +++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 3889554..b294004 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1945,9 +1945,11 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter,
                             WINED3DPBLENDCAPS_INVSRCCOLOR     |
                             WINED3DPBLENDCAPS_ONE             |
                             WINED3DPBLENDCAPS_SRCALPHA        |
-                            WINED3DPBLENDCAPS_SRCALPHASAT     |
                             WINED3DPBLENDCAPS_SRCCOLOR        |
                             WINED3DPBLENDCAPS_ZERO;
+    /* NOTE: WINED3DPBLENDCAPS_SRCALPHASAT is not supported as dest blend factor,
+     * according to the glBlendFunc manpage
+     */
 
     *pCaps->AlphaCmpCaps = WINED3DPCMPCAPS_ALWAYS       |
                            WINED3DPCMPCAPS_EQUAL        |
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 82cb90e..9a768d1 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -285,7 +285,11 @@ static void state_blend(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D
         case WINED3DBLEND_INVDESTALPHA       : dstBlend = GL_ONE_MINUS_DST_ALPHA;  break;
         case WINED3DBLEND_DESTCOLOR          : dstBlend = GL_DST_COLOR;  break;
         case WINED3DBLEND_INVDESTCOLOR       : dstBlend = GL_ONE_MINUS_DST_COLOR;  break;
-        case WINED3DBLEND_SRCALPHASAT        : dstBlend = GL_SRC_ALPHA_SATURATE;  break;
+
+        case WINED3DBLEND_SRCALPHASAT        :
+            dstBlend = GL_SRC_ALPHA_SATURATE;
+            WARN("Application uses SRCALPHASAT as dest blend factor, expect problems\n");
+            break;
 
         case WINED3DBLEND_BOTHSRCALPHA       : dstBlend = GL_SRC_ALPHA;
             srcBlend = GL_SRC_ALPHA;




More information about the wine-cvs mailing list