Vitaly Budovski : d3d8: Render state additions.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jan 17 09:29:32 CST 2006


Module: wine
Branch: refs/heads/master
Commit: 624efed78e0ae83d19fd1c7210ddd0b5b30d129b
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=624efed78e0ae83d19fd1c7210ddd0b5b30d129b

Author: Vitaly Budovski <vbudovsk at cs.rmit.edu.au>
Date:   Tue Jan 17 15:58:43 2006 +0100

d3d8: Render state additions.
Implemented D3DRS_EDGEANTIALIAS.
Implemented D3DRS_POINTSPRITEENABLE.
Implemented D3DRS_MULTISAMPLEANTIALIAS.

---

 dlls/d3d8/device.c |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index 77a59a9..363052d 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -3054,6 +3054,21 @@ HRESULT  WINAPI  IDirect3DDevice8Impl_Se
 
         /* Unhandled yet...! */
     case D3DRS_EDGEANTIALIAS             :
+    {
+        if(Value) {
+            glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+            glEnable(GL_BLEND);
+            checkGLcall("glEnable GL_BLEND");
+            glEnable(GL_LINE_SMOOTH);
+            checkGLcall("glEnable Gl_LINE_SMOOTH");
+        } else {
+            glDisable(GL_BLEND);
+            checkGLcall("glDisable GL_BLEND");
+            glDisable(GL_LINE_SMOOTH);
+            checkGLcall("glDisable GL_LINE_SMOOTH");
+        }
+        break;
+    }
     case D3DRS_WRAP0                     :
     case D3DRS_WRAP1                     :
     case D3DRS_WRAP2                     :
@@ -3062,8 +3077,48 @@ HRESULT  WINAPI  IDirect3DDevice8Impl_Se
     case D3DRS_WRAP5                     :
     case D3DRS_WRAP6                     :
     case D3DRS_WRAP7                     :
+    {
+        FIXME("(%p)->(%d,%ld) not handled yet\n", This, State, Value);
+        break;
+    }
     case D3DRS_POINTSPRITEENABLE         :
+    {
+        if(Value) {
+            if(GL_SUPPORT(GL_ARB_point_sprite)) {
+                glEnable(GL_POINT_SPRITE_ARB);
+                checkGLcall("glEnable GL_POINT_SPRITE_ARB");
+            } else {
+                TRACE("Point sprites cannot be enabled in this version of opengl\n");
+            }
+        } else {
+            if(GL_SUPPORT(GL_ARB_point_sprite)) {
+                glDisable(GL_POINT_SPRITE_ARB);
+                checkGLcall("glDisable GL_POINT_SPRITE_ARB");
+            } else {
+                TRACE("Point sprites cannot be disabled in this version of opengl\n");
+            }
+        }
+        break;
+    }
     case D3DRS_MULTISAMPLEANTIALIAS      :
+    {
+        if(Value) {
+            if(GL_SUPPORT(GL_ARB_multisample)) {
+                glEnable(GL_MULTISAMPLE_ARB);
+                checkGLcall("glEnable GL_MULTISAMPLE_ARB");
+            } else {
+                TRACE("Multisample antialiasing cannot be enabled in this version of opengl\n");
+            }
+        } else {
+            if(GL_SUPPORT(GL_ARB_multisample)) {
+                glDisable(GL_MULTISAMPLE_ARB);
+                checkGLcall("glDisable GL_MULTISAMPLE_ARB");
+            } else {
+                TRACE("Multisample antialiasing cannot be disabled in this version of opengl\n");
+            }
+        }
+        break;
+    }
     case D3DRS_MULTISAMPLEMASK           :
     case D3DRS_PATCHEDGESTYLE            :
     case D3DRS_PATCHSEGMENTS             :




More information about the wine-cvs mailing list