BlendState: Use masking as a fastpath for the logic op NO_OP.
This commit is contained in:
1 parent
23b0faeba5
commit
f6c7a258ed
1 file changed
+14
-5
@@ -108,12 +108,21 @@ void BlendingState::Generate(const BPMemory& bp)
|
|||||||
// The logicop bit has the lowest priority
|
// The logicop bit has the lowest priority
|
||||||
else if (bp.blendmode.logicopenable)
|
else if (bp.blendmode.logicopenable)
|
||||||
{
|
{
|
||||||
logicopenable = true;
|
if (bp.blendmode.logicmode == BlendMode::NOOP)
|
||||||
logicmode = bp.blendmode.logicmode;
|
|
||||||
|
|
||||||
if (dstalpha)
|
|
||||||
{
|
{
|
||||||
// TODO: Not supported by backends.
|
// Fast path for Kirby's Return to Dreamland, they use it with dstAlpha.
|
||||||
|
colorupdate = false;
|
||||||
|
alphaupdate = alphaupdate && dstalpha;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
logicopenable = true;
|
||||||
|
logicmode = bp.blendmode.logicmode;
|
||||||
|
|
||||||
|
if (dstalpha)
|
||||||
|
{
|
||||||
|
// TODO: Not supported by backends.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user