From 87d4a5f27faffd2bdd74a444d39f967ab5aa0e8b Mon Sep 17 00:00:00 2001
From: Kenneth Russel <kbrussel@alum.mit.edu>
Date: Mon, 18 Feb 2008 08:58:39 +0000
Subject: Added table of Porter-Duff compositing rules in the face of
 premultiplied alpha based on some code from the Java 2D OpenGL pipeline

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1535 232f8b59-042b-4e1e-8c03-345bb8c30851
---
 .../com/sun/opengl/util/texture/Texture.java       | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

(limited to 'src/classes/com/sun')

diff --git a/src/classes/com/sun/opengl/util/texture/Texture.java b/src/classes/com/sun/opengl/util/texture/Texture.java
index d634f66fb..f4a0a8be2 100755
--- a/src/classes/com/sun/opengl/util/texture/Texture.java
+++ b/src/classes/com/sun/opengl/util/texture/Texture.java
@@ -111,6 +111,28 @@ import com.sun.opengl.util.texture.spi.*;
     float b = b * a;
     gl.glColor4f(r, g, b, a);
 </pre> 
+ *
+ * For reference, here is a list of the Porter-Duff compositing rules
+ * and the associated OpenGL blend functions (source and destination
+ * factors) to use in the face of premultiplied alpha:
+ *
+<CENTER>
+<TABLE WIDTH="75%">
+<TR> <TD> Rule     <TD> Source                  <TD> Dest
+<TR> <TD> Clear    <TD> GL_ZERO                 <TD> GL_ZERO
+<TR> <TD> Src      <TD> GL_ONE                  <TD> GL_ZERO
+<TR> <TD> SrcOver  <TD> GL_ONE                  <TD> GL_ONE_MINUS_SRC_ALPHA
+<TR> <TD> DstOver  <TD> GL_ONE_MINUS_DST_ALPHA  <TD> GL_ONE
+<TR> <TD> SrcIn    <TD> GL_DST_ALPHA            <TD> GL_ZERO
+<TR> <TD> DstIn    <TD> GL_ZERO                 <TD> GL_SRC_ALPHA
+<TR> <TD> SrcOut   <TD> GL_ONE_MINUS_DST_ALPHA  <TD> GL_ZERO
+<TR> <TD> DstOut   <TD> GL_ZERO                 <TD> GL_ONE_MINUS_SRC_ALPHA
+<TR> <TD> Dst      <TD> GL_ZERO                 <TD> GL_ONE
+<TR> <TD> SrcAtop  <TD> GL_DST_ALPHA            <TD> GL_ONE_MINUS_SRC_ALPHA
+<TR> <TD> DstAtop  <TD> GL_ONE_MINUS_DST_ALPHA  <TD> GL_SRC_ALPHA
+<TR> <TD> AlphaXor <TD> GL_ONE_MINUS_DST_ALPHA  <TD> GL_ONE_MINUS_SRC_ALPHA
+</TABLE>
+</CENTER>
  *
  * @author Chris Campbell
  * @author Kenneth Russell
-- 
cgit v1.2.3