gpu: display capture: fix bug blending vram + 2d/3d causing 2d elements to be black
This commit is contained in:
parent
41aa900bb7
commit
620618d22b
|
@ -1002,7 +1002,7 @@ FORCEINLINE void GPU::setFinalBGColorSpecialBlend(u16 &color, const u8 x)
|
||||||
//If the layer we are drawing on is selected as 2nd source, we can blend
|
//If the layer we are drawing on is selected as 2nd source, we can blend
|
||||||
int bg_under = bgPixels[x];
|
int bg_under = bgPixels[x];
|
||||||
if(blend2[bg_under])
|
if(blend2[bg_under])
|
||||||
color = blend(color,T2ReadWord(currDst, x<<1)) | 0x8000;
|
color = blend(color,T2ReadWord(currDst, x<<1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1010,7 +1010,7 @@ FORCEINLINE void GPU::setFinalBGColorSpecialIncrease (u16 &color, const u8 x)
|
||||||
{
|
{
|
||||||
if(blend1) // the bg to draw has a special color effect
|
if(blend1) // the bg to draw has a special color effect
|
||||||
{
|
{
|
||||||
color = (currentFadeInColors[color&0x7FFF] | 0x8000);
|
color = currentFadeInColors[color];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1018,7 +1018,7 @@ FORCEINLINE void GPU::setFinalBGColorSpecialDecrease(u16 &color, const u8 x)
|
||||||
{
|
{
|
||||||
if(blend1) // the bg to draw has a special color effect
|
if(blend1) // the bg to draw has a special color effect
|
||||||
{
|
{
|
||||||
color = (currentFadeOutColors[color&0x7FFF] | 0x8000);
|
color = currentFadeOutColors[color];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1056,7 +1056,7 @@ FORCEINLINE bool GPU::setFinalBGColorSpecialBlendWnd(u16 &color, const u8 x)
|
||||||
|
|
||||||
// If the layer we are drawing on is selected as 2nd source, we can blend
|
// If the layer we are drawing on is selected as 2nd source, we can blend
|
||||||
if(blend2[bg_under])
|
if(blend2[bg_under])
|
||||||
color = blend(color,T2ReadWord(currDst, x<<1))| 0x8000;
|
color = blend(color,T2ReadWord(currDst, x<<1));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1073,7 +1073,7 @@ FORCEINLINE bool GPU::setFinalBGColorSpecialIncreaseWnd(u16 &color, const u8 x)
|
||||||
{
|
{
|
||||||
if(blend1 && windowEffect)
|
if(blend1 && windowEffect)
|
||||||
{
|
{
|
||||||
color = currentFadeInColors[color&0x7FFF]| 0x8000;
|
color = currentFadeInColors[color];
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1090,7 +1090,7 @@ FORCEINLINE bool GPU::setFinalBGColorSpecialDecreaseWnd(u16 &color, const u8 x)
|
||||||
{
|
{
|
||||||
if(blend1 && windowEffect)
|
if(blend1 && windowEffect)
|
||||||
{
|
{
|
||||||
color = currentFadeOutColors[color&0x7FFF]| 0x8000;
|
color = currentFadeOutColors[color];
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1341,6 +1341,8 @@ static void setFinalOBJColorSpecialDecreaseWnd(GPU *gpu, u32 passing, u8 *dst, u
|
||||||
|
|
||||||
FORCEINLINE void GPU::setFinalColorBG(u16 color, u8 x)
|
FORCEINLINE void GPU::setFinalColorBG(u16 color, u8 x)
|
||||||
{
|
{
|
||||||
|
assert((color&0x8000)==0);
|
||||||
|
|
||||||
//if someone disagrees with these, they could be reimplemented as a function pointer easily
|
//if someone disagrees with these, they could be reimplemented as a function pointer easily
|
||||||
bool draw=true;
|
bool draw=true;
|
||||||
switch(setFinalColorBck_funcNum)
|
switch(setFinalColorBck_funcNum)
|
||||||
|
@ -1357,7 +1359,7 @@ FORCEINLINE void GPU::setFinalColorBG(u16 color, u8 x)
|
||||||
|
|
||||||
if(draw)
|
if(draw)
|
||||||
{
|
{
|
||||||
T2WriteWord(currDst, x<<1, color);
|
T2WriteWord(currDst, x<<1, color | 0x8000);
|
||||||
bgPixels[x] = currBgNum;
|
bgPixels[x] = currBgNum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3075,13 +3077,6 @@ void GPU_ligne(NDS_Screen * screen, u16 l)
|
||||||
gpu->setup_windows<0>();
|
gpu->setup_windows<0>();
|
||||||
gpu->setup_windows<1>();
|
gpu->setup_windows<1>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// initialize the scanline black
|
|
||||||
// not doing this causes invalid colors when all active BGs are prevented to draw at some place
|
|
||||||
// ZERO TODO - shouldnt this be BG palette color 0?
|
|
||||||
//memset(dst,0,256*2) ;
|
|
||||||
|
|
||||||
// This could almost be changed to use function pointers
|
// This could almost be changed to use function pointers
|
||||||
switch (gpu->dispMode)
|
switch (gpu->dispMode)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue