DXGL r66 - Code Review
For
DXGL
(
recent comments
|
status changes
|
tags
|
authors
|
states
|
release notes
|
statistics
)
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 @@
293
293
}
294
294
HRESULT WINAPI glDirect3DDevice7::GetRenderState(D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState)
295
295
{
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;
298
302
}
299
303
HRESULT WINAPI glDirect3DDevice7::GetRenderTarget(LPDIRECTDRAWSURFACE7 *lplpRenderTarget)
300
304
{
—
—
@@ -368,8 +372,34 @@
369
373
}
370
374
HRESULT WINAPI glDirect3DDevice7::SetRenderState(D3DRENDERSTATETYPE dwRendStateType, DWORD dwRenderState)
371
375
{
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
+ }
374
404
}
375
405
HRESULT WINAPI glDirect3DDevice7::SetRenderTarget(LPDIRECTDRAWSURFACE7 lpNewRenderTarget, DWORD dwFlags)
376
406
{
Navigation menu
Personal tools
Log in
Namespaces
Special page
English
expanded
collapsed
Views
More
expanded
collapsed
Search
Navigation
Home
Main page
Recent changes
Random page
MediaWiki help
Introduction
Progress
Downloads
Source code
Build from source
AppDB
Bug reports
Forums
Tools
Special pages
Printable version