diff options
author | Sergeanur <s.anureev@yandex.ua> | 2020-07-29 14:34:57 +0200 |
---|---|---|
committer | Sergeanur <s.anureev@yandex.ua> | 2020-07-29 14:34:57 +0200 |
commit | acdc52116ea78b4ebf065b23b0cd48d7e41c711a (patch) | |
tree | d50d8667825d3d9e9f99d4948d349e1ffc4e3f97 /src/rw/RwHelper.cpp | |
parent | some fakerw additions for shadows; update librw (diff) | |
parent | Add forgotten file (diff) | |
download | re3-acdc52116ea78b4ebf065b23b0cd48d7e41c711a.tar re3-acdc52116ea78b4ebf065b23b0cd48d7e41c711a.tar.gz re3-acdc52116ea78b4ebf065b23b0cd48d7e41c711a.tar.bz2 re3-acdc52116ea78b4ebf065b23b0cd48d7e41c711a.tar.lz re3-acdc52116ea78b4ebf065b23b0cd48d7e41c711a.tar.xz re3-acdc52116ea78b4ebf065b23b0cd48d7e41c711a.tar.zst re3-acdc52116ea78b4ebf065b23b0cd48d7e41c711a.zip |
Diffstat (limited to 'src/rw/RwHelper.cpp')
-rw-r--r-- | src/rw/RwHelper.cpp | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/rw/RwHelper.cpp b/src/rw/RwHelper.cpp index ab368e85..cabe43f1 100644 --- a/src/rw/RwHelper.cpp +++ b/src/rw/RwHelper.cpp @@ -11,7 +11,11 @@ RtCharset *debugCharset; #endif -bool gPS2alphaTest = 1; +#ifdef DUAL_PASS_RENDERING +bool gPS2alphaTest = true; +#else +bool gPS2alphaTest = false; +#endif bool gBackfaceCulling; #ifndef FINAL @@ -688,3 +692,37 @@ ConvertPlatformAtomic(RpAtomic *atomic, void *data) return atomic; } #endif + +#if defined(FIX_BUGS) && defined(GTA_PC) +RwUInt32 saved_alphafunc, saved_alpharef; + +void +SetAlphaTest(RwUInt32 alpharef) +{ +#ifdef LIBRW + saved_alphafunc = rw::GetRenderState(rw::ALPHATESTFUNC); + saved_alpharef = rw::GetRenderState(rw::ALPHATESTREF); + + rw::SetRenderState(rw::ALPHATESTFUNC, rw::ALPHAGREATEREQUAL); + rw::SetRenderState(rw::ALPHATESTREF, 0); +#else + RwD3D8GetRenderState(D3DRS_ALPHAFUNC, &saved_alphafunc); + RwD3D8GetRenderState(D3DRS_ALPHAREF, &saved_alpharef); + + RwD3D8SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL); + RwD3D8SetRenderState(D3DRS_ALPHAREF, alpharef); +#endif +} + +void +RestoreAlphaTest() +{ +#ifdef LIBRW + rw::SetRenderState(rw::ALPHATESTFUNC, saved_alphafunc); + rw::SetRenderState(rw::ALPHATESTREF, saved_alpharef); +#else + RwD3D8SetRenderState(D3DRS_ALPHAFUNC, saved_alphafunc); + RwD3D8SetRenderState(D3DRS_ALPHAREF, saved_alpharef); +#endif +} +#endif
\ No newline at end of file |