Fix for odd alpha blending partsTex

This commit is contained in:
Simon Robertshaw 2011-10-25 13:42:17 +01:00
parent 6fc1ec3749
commit 48ad01f2ff

View File

@ -1561,11 +1561,21 @@ void draw_other(pixel *vid) // EMP effect
if (g>255) g=255; if (g>255) g=255;
if (b>255) g=255; if (b>255) g=255;
if (a>255) a=255; if (a>255) a=255;
#ifdef OGLR
glBegin(GL_QUADS);
glColor4i(r, g, b, a);
glVertex2f(0, 0);
glVertex2f(XRES, 0);
glVertex2f(XRES, YRES);
glVertex2f(0, YRES);
glEnd();
#else
for (j=0; j<YRES; j++) for (j=0; j<YRES; j++)
for (i=0; i<XRES; i++) for (i=0; i<XRES; i++)
{ {
drawpixel(vid, i, j, r, g, b, a); drawpixel(vid, i, j, r, g, b, a);
} }
#endif
} }
} }
@ -2230,6 +2240,7 @@ void render_parts(pixel *vid)
glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_VERTEX_ARRAY);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
if(cflat) if(cflat)
{ {
@ -2410,6 +2421,7 @@ void render_parts(pixel *vid)
else else
{ {
glBindTexture(GL_TEXTURE_2D, partsFboTex); glBindTexture(GL_TEXTURE_2D, partsFboTex);
glBlendFunc(GL_ONE, GL_ONE);
} }
glColor4f(1.0f, 1.0f, 1.0f, 1.0f); glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
@ -2425,7 +2437,10 @@ void render_parts(pixel *vid)
glEnd(); glEnd();
if(cmode==CM_FANCY) if(cmode==CM_FANCY)
{
glUseProgram(0); glUseProgram(0);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
glDisable( GL_TEXTURE_2D ); glDisable( GL_TEXTURE_2D );
//Reset coords/offset //Reset coords/offset