rasterizer: fix for everything blended being slightly transparent

opengl: fix for everything blended being doubly opaque
This commit is contained in:
nitsuja 2009-08-03 01:57:25 +00:00
parent c9e2db0250
commit ea08d4aa84
2 changed files with 3 additions and 2 deletions

View File

@ -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; )
{

View File

@ -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];