GPU: Be consistent with how we apply the sprite window flags.
- Now applies the sprite window flags consistently between rotozoomed and non-rotozoomed modes. - Applying the sprite window flags in rotozoomed modes now ignores sprite priority as intended.
This commit is contained in:
parent
48f0f69929
commit
a9f2e53c25
|
@ -3767,21 +3767,17 @@ void GPUEngineBase::_RenderSprite256(GPUEngineCompositorInfo &compInfo, const u8
|
||||||
const u8 palette_entry = *src;
|
const u8 palette_entry = *src;
|
||||||
|
|
||||||
//a zero value suppresses the pixel from processing entirely; it doesnt exist
|
//a zero value suppresses the pixel from processing entirely; it doesnt exist
|
||||||
if (ISDEBUGRENDER)
|
if (palette_entry > 0)
|
||||||
{
|
{
|
||||||
if (palette_entry > 0)
|
if (ISWINDOW)
|
||||||
|
{
|
||||||
|
this->_sprWin[sprX] = 1;
|
||||||
|
}
|
||||||
|
else if (ISDEBUGRENDER)
|
||||||
{
|
{
|
||||||
dst[sprX] = LE_TO_LOCAL_16(pal[palette_entry]);
|
dst[sprX] = LE_TO_LOCAL_16(pal[palette_entry]);
|
||||||
}
|
}
|
||||||
}
|
else if (prio < prioTab[sprX])
|
||||||
else
|
|
||||||
{
|
|
||||||
if(ISWINDOW)
|
|
||||||
{
|
|
||||||
if(palette_entry > 0)
|
|
||||||
this->_sprWin[sprX] = 1;
|
|
||||||
}
|
|
||||||
else if ((palette_entry > 0) && (prio < prioTab[sprX]))
|
|
||||||
{
|
{
|
||||||
dst[sprX] = LE_TO_LOCAL_16(pal[palette_entry]);
|
dst[sprX] = LE_TO_LOCAL_16(pal[palette_entry]);
|
||||||
dst_alpha[sprX] = 0xFF;
|
dst_alpha[sprX] = 0xFF;
|
||||||
|
@ -3805,21 +3801,17 @@ void GPUEngineBase::_RenderSprite16(GPUEngineCompositorInfo &compInfo, const u8
|
||||||
const u8 palette_entry = (x & 1) ? palette >> 4 : palette & 0xF;
|
const u8 palette_entry = (x & 1) ? palette >> 4 : palette & 0xF;
|
||||||
|
|
||||||
//a zero value suppresses the pixel from processing entirely; it doesnt exist
|
//a zero value suppresses the pixel from processing entirely; it doesnt exist
|
||||||
if (ISDEBUGRENDER)
|
if (palette_entry > 0)
|
||||||
{
|
{
|
||||||
if (palette_entry > 0)
|
if (ISWINDOW)
|
||||||
|
{
|
||||||
|
this->_sprWin[sprX] = 1;
|
||||||
|
}
|
||||||
|
else if (ISDEBUGRENDER)
|
||||||
{
|
{
|
||||||
dst[sprX] = LE_TO_LOCAL_16(pal[palette_entry]);
|
dst[sprX] = LE_TO_LOCAL_16(pal[palette_entry]);
|
||||||
}
|
}
|
||||||
}
|
else if (prio < prioTab[sprX])
|
||||||
else
|
|
||||||
{
|
|
||||||
if(ISWINDOW)
|
|
||||||
{
|
|
||||||
if(palette_entry > 0)
|
|
||||||
this->_sprWin[sprX] = 1;
|
|
||||||
}
|
|
||||||
else if ((palette_entry > 0) && (prio < prioTab[sprX]))
|
|
||||||
{
|
{
|
||||||
dst[sprX] = LE_TO_LOCAL_16(pal[palette_entry]);
|
dst[sprX] = LE_TO_LOCAL_16(pal[palette_entry]);
|
||||||
dst_alpha[sprX] = 0xFF;
|
dst_alpha[sprX] = 0xFF;
|
||||||
|
@ -4095,16 +4087,17 @@ void GPUEngineBase::_SpriteRenderPerform(GPUEngineCompositorInfo &compInfo, u16
|
||||||
|
|
||||||
colour = src[offset];
|
colour = src[offset];
|
||||||
|
|
||||||
if (ISDEBUGRENDER)
|
if (colour > 0)
|
||||||
{
|
{
|
||||||
if (colour)
|
if (objMode == OBJMode_Window)
|
||||||
|
{
|
||||||
|
this->_sprWin[sprX] = 1;
|
||||||
|
}
|
||||||
|
else if (ISDEBUGRENDER)
|
||||||
{
|
{
|
||||||
dst[sprX] = LE_TO_LOCAL_16(pal[colour]);
|
dst[sprX] = LE_TO_LOCAL_16(pal[colour]);
|
||||||
}
|
}
|
||||||
}
|
else if (prio < prioTab[sprX])
|
||||||
else
|
|
||||||
{
|
|
||||||
if (colour && (prio < prioTab[sprX]))
|
|
||||||
{
|
{
|
||||||
dst[sprX] = LE_TO_LOCAL_16(pal[colour]);
|
dst[sprX] = LE_TO_LOCAL_16(pal[colour]);
|
||||||
dst_alpha[sprX] = 0xFF;
|
dst_alpha[sprX] = 0xFF;
|
||||||
|
@ -4209,29 +4202,23 @@ void GPUEngineBase::_SpriteRenderPerform(GPUEngineCompositorInfo &compInfo, u16
|
||||||
if (auxX&1) colour >>= 4;
|
if (auxX&1) colour >>= 4;
|
||||||
else colour &= 0xF;
|
else colour &= 0xF;
|
||||||
|
|
||||||
if (ISDEBUGRENDER)
|
if (colour > 0)
|
||||||
{
|
{
|
||||||
if (colour)
|
if (objMode == OBJMode_Window)
|
||||||
|
{
|
||||||
|
this->_sprWin[sprX] = 1;
|
||||||
|
}
|
||||||
|
else if (ISDEBUGRENDER)
|
||||||
{
|
{
|
||||||
dst[sprX] = LE_TO_LOCAL_16(pal[colour]);
|
dst[sprX] = LE_TO_LOCAL_16(pal[colour]);
|
||||||
}
|
}
|
||||||
}
|
else if (prio < prioTab[sprX])
|
||||||
else
|
|
||||||
{
|
|
||||||
if (colour && (prio < prioTab[sprX]))
|
|
||||||
{
|
{
|
||||||
if (objMode == OBJMode_Window)
|
dst[sprX] = LE_TO_LOCAL_16(pal[colour]);
|
||||||
{
|
dst_alpha[sprX] = 0xFF;
|
||||||
this->_sprWin[sprX] = 1;
|
typeTab[sprX] = objMode;
|
||||||
}
|
prioTab[sprX] = prio;
|
||||||
else
|
this->_sprNum[sprX] = i;
|
||||||
{
|
|
||||||
dst[sprX] = LE_TO_LOCAL_16(pal[colour]);
|
|
||||||
dst_alpha[sprX] = 0xFF;
|
|
||||||
typeTab[sprX] = objMode;
|
|
||||||
prioTab[sprX] = prio;
|
|
||||||
this->_sprNum[sprX] = i;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue