f86ce57
Composite cube logo against background color.
f86ce57
f86ce57
From: Kristian Høgsberg <krh@redhat.com>
f86ce57
f86ce57
f86ce57
---
f86ce57
f86ce57
 plugins/cube.c |   17 +++++++++++++++++
f86ce57
 1 files changed, 17 insertions(+), 0 deletions(-)
f86ce57
f86ce57
diff --git a/plugins/cube.c b/plugins/cube.c
Kristian Høgsberg d290733
index b222685..0576b8d 100644
f86ce57
--- a/plugins/cube.c
f86ce57
+++ b/plugins/cube.c
f86ce57
@@ -1204,11 +1204,28 @@ cubePaintTransformedScreen (CompScreen		
f86ce57
 
f86ce57
 	if (cs->invert == 1 && s->size == 4 && cs->texture.name)
f86ce57
 	{
f86ce57
+	    glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
f86ce57
+
f86ce57
+	    glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE);
f86ce57
+	    glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE0);
f86ce57
+	    glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PRIMARY_COLOR);
f86ce57
+	    glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE2_RGB, GL_TEXTURE0);
f86ce57
+	    glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
f86ce57
+	    glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
f86ce57
+	    glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_ALPHA);
f86ce57
+
f86ce57
+	    glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
f86ce57
+	    glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
f86ce57
+	    glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
f86ce57
+
f86ce57
 	    enableTexture (s, &cs->texture, COMP_TEXTURE_FILTER_GOOD);
f86ce57
+
f86ce57
 	    glTexCoordPointer (2, GL_FLOAT, 0, cs->tc);
f86ce57
 	    glDrawArrays (GL_TRIANGLE_FAN, 0, cs->nvertices >> 1);
f86ce57
 	    disableTexture (s, &cs->texture);
f86ce57
 	    glDisableClientState (GL_TEXTURE_COORD_ARRAY);
f86ce57
+
f86ce57
+	    glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
f86ce57
 	}
f86ce57
 	else
f86ce57
 	{