File composite-cube-logo_remake.patch of Package compiz
diff -Naur compiz-0.8.6.orig//plugins/cube.c compiz-0.8.6//plugins/cube.c
--- compiz-0.8.6.orig//plugins/cube.c 2010-03-28 19:15:35.000000000 +0700
+++ compiz-0.8.6//plugins/cube.c 2010-10-02 21:16:11.000000000 +0700
@@ -1195,11 +1195,27 @@
if (cs->invert == 1 && size == 4 && cs->texture.name)
{
+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE0);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PRIMARY_COLOR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE2_RGB, GL_TEXTURE0);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_ALPHA);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
+
enableTexture (s, &cs->texture, COMP_TEXTURE_FILTER_GOOD);
glTexCoordPointer (2, GL_FLOAT, 0, cs->tc);
glDrawArrays (GL_TRIANGLE_FAN, 0, cs->nVertices >> 1);
disableTexture (s, &cs->texture);
glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
}
else
{