Added C3D_FragOpShadow()

This commit is contained in:
fincs 2017-02-09 19:59:46 +01:00
parent 73aea35120
commit 2a1dc2ba87
3 changed files with 9 additions and 0 deletions

View File

@ -11,3 +11,4 @@ void C3D_AlphaTest(bool enable, GPU_TESTFUNC function, int ref);
void C3D_AlphaBlend(GPU_BLENDEQUATION colorEq, GPU_BLENDEQUATION alphaEq, GPU_BLENDFACTOR srcClr, GPU_BLENDFACTOR dstClr, GPU_BLENDFACTOR srcAlpha, GPU_BLENDFACTOR dstAlpha);
void C3D_ColorLogicOp(GPU_LOGICOP op);
void C3D_FragOpMode(GPU_FRAGOPMODE mode);
void C3D_FragOpShadow(float scale, float bias);

View File

@ -73,6 +73,12 @@ void C3D_FragOpMode(GPU_FRAGOPMODE mode)
e->fragOpMode |= 0xE40000 | mode;
}
void C3D_FragOpShadow(float scale, float bias)
{
C3D_Effect* e = getEffect();
e->fragOpShadow = f32tof16(scale+bias) | (f32tof16(-scale)<<16);
}
void C3Di_EffectBind(C3D_Effect* e)
{
GPUCMD_AddWrite(GPUREG_DEPTHMAP_ENABLE, e->zBuffer ? 1 : 0);
@ -83,6 +89,7 @@ void C3Di_EffectBind(C3D_Effect* e)
GPUCMD_AddWrite(GPUREG_BLEND_FUNC, e->alphaBlend);
GPUCMD_AddWrite(GPUREG_LOGIC_OP, e->clrLogicOp);
GPUCMD_AddMaskedWrite(GPUREG_COLOR_OPERATION, 7, e->fragOpMode);
GPUCMD_AddWrite(GPUREG_FRAGOP_SHADOW, e->fragOpShadow);
// Disable early depth test?
GPUCMD_AddMaskedWrite(GPUREG_EARLYDEPTH_TEST1, 1, 0);

View File

@ -10,6 +10,7 @@
typedef struct
{
u32 fragOpMode;
u32 fragOpShadow;
u32 zScale, zOffset;
GPU_CULLMODE cullMode;
bool zBuffer;