Module: wine Branch: refs/heads/master Commit: 624efed78e0ae83d19fd1c7210ddd0b5b30d129b URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=624efed78e0ae83d19fd1c72...
Author: Vitaly Budovski vbudovsk@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 :