rasterizer: fix for everything blended being slightly transparent
opengl: fix for everything blended being doubly opaque
This commit is contained in:
parent
c9e2db0250
commit
ea08d4aa84
|
@ -588,6 +588,7 @@ FORCEINLINE FASTCALL void GPU::_master_setFinal3dColor(int dstX, int srcX)
|
|||
int bg_under = bgPixels[dstX];
|
||||
if(blend2[bg_under])
|
||||
{
|
||||
alpha++;
|
||||
if(alpha<32)
|
||||
{
|
||||
//if the layer underneath is a blend bottom layer, then 3d always alpha blends with it
|
||||
|
@ -2054,7 +2055,7 @@ static void GPU_ligne_layer(NDS_Screen * screen, u16 l)
|
|||
for(int j=0;j<8;j++)
|
||||
gpu->blend2[j] = (gpu->BLDCNT & (0x100 << j))!=0;
|
||||
|
||||
// paint lower priorities fist
|
||||
// paint lower priorities first
|
||||
// then higher priorities on top
|
||||
for(int prio=NB_PRIORITIES; prio > 0; )
|
||||
{
|
||||
|
|
|
@ -702,7 +702,7 @@ static void GL_ReadFramebuffer()
|
|||
u32screen3D &= 0x3F3F3F3F;
|
||||
|
||||
const int t = i<<2;
|
||||
const u8 a = GPU_screen3D[t+3];
|
||||
const u8 a = GPU_screen3D[t+3] >> 1;
|
||||
const u8 r = GPU_screen3D[t+2];
|
||||
const u8 g = GPU_screen3D[t+1];
|
||||
const u8 b = GPU_screen3D[t+0];
|
||||
|
|
Loading…
Reference in New Issue