mirror of
https://github.com/halpz/re3.git
synced 2025-07-16 20:48:11 +00:00
implemented extra model flags for backface culling and alpha test from mobile
This commit is contained in:
@ -3,6 +3,7 @@
|
||||
#endif
|
||||
#include "common.h"
|
||||
|
||||
#include "RwHelper.h"
|
||||
#include "Timecycle.h"
|
||||
#include "skeleton.h"
|
||||
#include "Debug.h"
|
||||
@ -16,6 +17,7 @@ bool gPS2alphaTest = true;
|
||||
#else
|
||||
bool gPS2alphaTest = false;
|
||||
#endif
|
||||
bool gBackfaceCulling = true;
|
||||
|
||||
#ifndef FINAL
|
||||
static bool charsetOpen;
|
||||
@ -121,14 +123,32 @@ DefinedState(void)
|
||||
|
||||
#ifdef LIBRW
|
||||
rw::SetRenderState(rw::ALPHATESTFUNC, rw::ALPHAGREATEREQUAL);
|
||||
rw::SetRenderState(rw::ALPHATESTREF, 3);
|
||||
|
||||
rw::SetRenderState(rw::GSALPHATEST, gPS2alphaTest);
|
||||
#else
|
||||
// D3D stuff
|
||||
RwD3D8SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATER);
|
||||
RwD3D8SetRenderState(D3DRS_ALPHAREF, 2);
|
||||
#endif
|
||||
SetAlphaRef(2);
|
||||
}
|
||||
|
||||
void
|
||||
SetAlphaRef(int ref)
|
||||
{
|
||||
#ifdef LIBRW
|
||||
rw::SetRenderState(rw::ALPHATESTREF, ref+1);
|
||||
#else
|
||||
RwD3D8SetRenderState(D3DRS_ALPHAREF, ref);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
SetCullMode(uint32 mode)
|
||||
{
|
||||
if(gBackfaceCulling)
|
||||
RwRenderStateSet(rwRENDERSTATECULLMODE, (void*)mode);
|
||||
else
|
||||
RwRenderStateSet(rwRENDERSTATECULLMODE, (void*)rwCULLMODECULLNONE);
|
||||
}
|
||||
|
||||
RwFrame*
|
||||
|
@ -11,6 +11,8 @@ void DestroyDebugFont();
|
||||
void ObrsPrintfString(const char *str, short x, short y);
|
||||
void FlushObrsPrintfs();
|
||||
void DefinedState(void);
|
||||
void SetAlphaRef(int ref);
|
||||
void SetCullMode(uint32 mode);
|
||||
RwFrame *GetFirstChild(RwFrame *frame);
|
||||
RwObject *GetFirstObject(RwFrame *frame);
|
||||
RpAtomic *GetFirstAtomic(RpClump *clump);
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "common.h"
|
||||
|
||||
#include "RwHelper.h"
|
||||
#include "templates.h"
|
||||
#include "Entity.h"
|
||||
#include "ModelInfo.h"
|
||||
@ -158,6 +159,10 @@ CVisibilityPlugins::RenderFadingEntities(void)
|
||||
if(mi->m_noZwrite)
|
||||
#endif
|
||||
RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, FALSE);
|
||||
#ifdef EXTRA_MODEL_FLAGS
|
||||
if(mi->m_bIsTree)
|
||||
SetAlphaRef(128);
|
||||
#endif
|
||||
|
||||
if(e->bDistanceFade){
|
||||
DeActivateDirectional();
|
||||
@ -168,6 +173,10 @@ CVisibilityPlugins::RenderFadingEntities(void)
|
||||
}else
|
||||
CRenderer::RenderOneNonRoad(e);
|
||||
|
||||
#ifdef EXTRA_MODEL_FLAGS
|
||||
if(mi->m_bIsTree)
|
||||
SetAlphaRef(2);
|
||||
#endif
|
||||
#ifdef FIX_BUGS
|
||||
if(mi->GetModelType() == MITYPE_SIMPLE && mi->m_noZwrite)
|
||||
#else
|
||||
|
Reference in New Issue
Block a user