Roderick Colenbrander : wined3d: glBlend* fixes.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Sep 25 14:45:27 CDT 2006


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

Author: Roderick Colenbrander <thunderbird2k at gmx.net>
Date:   Fri Sep 22 07:58:38 2006 +0200

wined3d: glBlend* fixes.

---

 dlls/wined3d/device.c     |   26 +++++++++++---------------
 dlls/wined3d/directx.c    |    3 +++
 include/wine/wined3d_gl.h |    1 +
 3 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index e32b824..c4b9767 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3700,7 +3700,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl
                 FIXME("Unrecognized/Unhandled D3DBLENDOP value %ld\n", Value);
             }
 
-            if(GL_SUPPORT(ARB_IMAGING)) {
+            if(GL_SUPPORT(EXT_BLEND_MINMAX)) {
                 TRACE("glBlendEquation(%x)\n", glParm);
                 GL_EXTCALL(glBlendEquation(glParm));
                 checkGLcall("glBlendEquation");
@@ -4509,23 +4509,19 @@ static HRESULT WINAPI IWineD3DDeviceImpl
     case WINED3DRS_BLENDFACTOR               :
     {
         float col[4];
-        if (GL_SUPPORT(ARB_IMAGING)) {
 
-            TRACE("Setting BlendFactor to %ld", Value);
+        TRACE("Setting BlendFactor to %ld\n", Value);
 
-            D3DCOLORTOGLFLOAT4(Value, col);
-            if (0xFFFFFFFF != Value) {
-                glEnable(GL_BLEND);
-                checkGLcall("glEnable(GL_BLEND)");
-            }
-            else {
-               glDisable(GL_BLEND);
-               checkGLcall("glDisable(GL_BLEND)");
-            }
-            glBlendColor (col[0],col[1],col[2],col[3]);
-        } else {
-           WARN("Unsupported in local OpenGL implementation: glBlendColor\n");
+        D3DCOLORTOGLFLOAT4(Value, col);
+        if (0xFFFFFFFF != Value) {
+            glEnable(GL_BLEND);
+            checkGLcall("glEnable(GL_BLEND)");
+        }
+        else {
+           glDisable(GL_BLEND);
+           checkGLcall("glDisable(GL_BLEND)");
         }
+        glBlendColor (col[0],col[1],col[2],col[3]);
         break;
     }
 
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 19e3172..793e3c8 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -640,6 +640,9 @@ #undef USE_GL_FUNC
             } else if (strcmp(ThisExtn, "GL_EXT_framebuffer_object") == 0) {
                 TRACE_(d3d_caps)(" FOUND: EXT Frame Buffer Object support\n");
                 gl_info->supported[EXT_FRAMEBUFFER_OBJECT] = TRUE;
+            } else if (strcmp(ThisExtn, "GL_EXT_blend_minmax") == 0) {
+                TRACE_(d3d_caps)(" FOUND: EXT Blend minmax support\n");
+                gl_info->supported[EXT_BLEND_MINMAX] = TRUE;
             } else if (strcmp(ThisExtn, "GL_EXT_paletted_texture") == 0) { /* handle paletted texture extensions */
                 TRACE_(d3d_caps)(" FOUND: EXT Paletted texture support\n");
                 gl_info->supported[EXT_PALETTED_TEXTURE] = TRUE;
diff --git a/include/wine/wined3d_gl.h b/include/wine/wined3d_gl.h
index 1a589a5..1832287 100644
--- a/include/wine/wined3d_gl.h
+++ b/include/wine/wined3d_gl.h
@@ -1429,6 +1429,7 @@ typedef enum _GL_SupportedExt {
   ARB_VERTEX_BUFFER_OBJECT,
   ARB_VERTEX_SHADER,
   /* EXT */
+  EXT_BLEND_MINMAX,
   EXT_FOG_COORD,
   EXT_FRAMEBUFFER_OBJECT,
   EXT_PALETTED_TEXTURE,




More information about the wine-cvs mailing list