DXGL r66 - Code Review

Jump to navigation Jump to search
Repository:DXGL
Revision:r65‎ | r66 | r67 >
Date:02:38, 1 January 2012
Author:admin
Status:new
Tags:
Comment:
Add GetRenderState and begin adding SetRenderState
Modified paths:
  • /ddraw/glDirect3DDevice.cpp (modified) (history)

Diff [purge]

Index: ddraw/glDirect3DDevice.cpp
@@ -292,8 +292,12 @@
293293 }
294294 HRESULT WINAPI glDirect3DDevice7::GetRenderState(D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState)
295295 {
296 - FIXME("glDirect3DDevice7::GetRenderState: stub");
297 - ERR(DDERR_GENERIC);
 296+ if(dwRenderStateType <= 152)
 297+ {
 298+ *lpdwRenderState = renderstate[dwRenderStateType];
 299+ return D3D_OK;
 300+ }
 301+ return DDERR_INVALIDPARAMS;
298302 }
299303 HRESULT WINAPI glDirect3DDevice7::GetRenderTarget(LPDIRECTDRAWSURFACE7 *lplpRenderTarget)
300304 {
@@ -368,8 +372,34 @@
369373 }
370374 HRESULT WINAPI glDirect3DDevice7::SetRenderState(D3DRENDERSTATETYPE dwRendStateType, DWORD dwRenderState)
371375 {
372 - FIXME("glDirect3DDevice7::SetRenderState: stub");
373 - ERR(DDERR_GENERIC);
 376+ switch(dwRendStateType)
 377+ {
 378+ case D3DRENDERSTATE_ANTIALIAS:
 379+ renderstate[dwRendStateType] = dwRenderState;
 380+ if(dwRenderState == 0) glDisable(GL_MULTISAMPLE);
 381+ else glEnable(GL_MULTISAMPLE);
 382+ return D3D_OK;
 383+ case D3DRENDERSTATE_TEXTUREPERSPECTIVE:
 384+ renderstate[dwRendStateType] = dwRenderState;
 385+ if(dwRenderState) glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);
 386+ else glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_FASTEST);
 387+ return D3D_OK;
 388+ case D3DRENDERSTATE_ZENABLE:
 389+ renderstate[dwRendStateType] = dwRenderState;
 390+ switch(dwRenderState)
 391+ {
 392+ case D3DZB_FALSE:
 393+ glDisable(GL_DEPTH_TEST);
 394+ break;
 395+ case D3DZB_TRUE:
 396+ default:
 397+ case D3DZB_USEW:
 398+ glEnable(GL_DEPTH_TEST);
 399+ }
 400+ return D3D_OK;
 401+ default:
 402+ ERR(DDERR_INVALIDPARAMS);
 403+ }
374404 }
375405 HRESULT WINAPI glDirect3DDevice7::SetRenderTarget(LPDIRECTDRAWSURFACE7 lpNewRenderTarget, DWORD dwFlags)
376406 {