pixman: Branch 'master' - 3 commits

Benjamin Otte company at kemper.freedesktop.org
Thu Jul 16 06:36:25 PDT 2009


 pixman/pixman-combine.c.template |   39 +++++++++++++++++++++------------------
 1 file changed, 21 insertions(+), 18 deletions(-)

New commits:
commit 12e829a8de1e45708b5dfeaa8137af6eeaf0f662
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Jul 16 15:33:43 2009 +0200

    Clarify color burn code - no semantical changes
    
    - Improve documentation to be equal to Proposed ISO32000 Extension
    - Simplify code in default case

diff --git a/pixman/pixman-combine.c.template b/pixman/pixman-combine.c.template
index 935b7b5..2cbdb64 100644
--- a/pixman/pixman-combine.c.template
+++ b/pixman/pixman-combine.c.template
@@ -646,8 +646,10 @@ PDF_SEPARABLE_BLEND_MODE (color_dodge)
 /*
  * Color burn
  * B(Dca, Da, Sca, Sa) =
- *   if Sca. == 0
- *     (Da == Dca).Sa.Da
+ *   if Dca == Da
+ *     Sa.Da
+ *   if Sca == 0
+ *     0
  *   otherwise
  *     Sa.Da.(1 - min (1, (1 - Dca/Da).Sa / Sca))
  */
@@ -660,9 +662,8 @@ blend_color_burn (comp4_t dca, comp4_t da, comp4_t sca, comp4_t sa)
     }
     else
     {
-	comp4_t sada = sa * da;
-	comp4_t rca = (da - dca) * sa * sa / sca;
-	return DIV_ONE_UNc (rca > sada ? 0 : sada - rca);
+	comp4_t rca = (da - dca) * sa / sca;
+	return DIV_ONE_UNc (sa * (MAX (rca, da) - rca));
     }
 }
 
commit acf5738a82afb51a2284f5e61d9fac8dae7a47d5
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Jul 16 15:28:05 2009 +0200

    Clarify color dodge code - no semantical changes
    
    - Improve documentation to be equal to Proposed ISO32000 Extension
    - Simplify code in default case

diff --git a/pixman/pixman-combine.c.template b/pixman/pixman-combine.c.template
index 1168026..935b7b5 100644
--- a/pixman/pixman-combine.c.template
+++ b/pixman/pixman-combine.c.template
@@ -620,10 +620,12 @@ PDF_SEPARABLE_BLEND_MODE (lighten)
 /*
  * Color dodge
  * B(Dca, Da, Sca, Sa) =
+ *   if Dca == 0
+ *     0
  *   if Sca == Sa
- *     (Dca != 0).Sa.Da
+ *     Sa.Da
  *   otherwise
- *     Da.Sa. min (Dca / Da / (1 - Sca/Sa))
+ *     Sa.Da. min (1, Dca / Da / (1 - Sca/Sa))
  */
 static inline comp4_t
 blend_color_dodge (comp4_t dca, comp4_t da, comp4_t sca, comp4_t sa)
@@ -634,8 +636,8 @@ blend_color_dodge (comp4_t dca, comp4_t da, comp4_t sca, comp4_t sa)
     }
     else
     {
-	comp4_t rca = dca * sa * sa / (sa - sca);
-	return DIV_ONE_UNc (rca > sa * da ? sa * da : rca);
+	comp4_t rca = dca * sa / (sa - sca);
+	return DIV_ONE_UNc (sa * MIN (rca, da));
     }
 }
 
commit 3dafe926b2405ba3404a41bb5b2842413308c8fa
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Jul 16 15:02:51 2009 +0200

    Fix terms in comments describing the blend modes

diff --git a/pixman/pixman-combine.c.template b/pixman/pixman-combine.c.template
index 54aa291..1168026 100644
--- a/pixman/pixman-combine.c.template
+++ b/pixman/pixman-combine.c.template
@@ -565,7 +565,7 @@ PDF_SEPARABLE_BLEND_MODE (screen)
 
 /*
  * Overlay
- * B(Dca, ab, Sca, as) =
+ * B(Dca, Da, Sca, Sa) =
  *   if 2.Dca < Da
  *     2.Sca.Dca
  *   otherwise
@@ -587,7 +587,7 @@ PDF_SEPARABLE_BLEND_MODE (overlay)
 
 /*
  * Darken
- * B(Dca, ab, Sca, as) = min (Sca.Da, Dca.Sa)
+ * B(Dca, Da, Sca, Sa) = min (Sca.Da, Dca.Sa)
  */
 static inline comp4_t
 blend_darken (comp4_t dca, comp4_t da, comp4_t sca, comp4_t sa)
@@ -603,7 +603,7 @@ PDF_SEPARABLE_BLEND_MODE (darken)
 
 /*
  * Lighten
- * B(Dca, ab, Sca, as) = max (Sca.Da, Dca.Sa)
+ * B(Dca, Da, Sca, Sa) = max (Sca.Da, Dca.Sa)
  */
 static inline comp4_t
 blend_lighten (comp4_t dca, comp4_t da, comp4_t sca, comp4_t sa)
@@ -619,7 +619,7 @@ PDF_SEPARABLE_BLEND_MODE (lighten)
 
 /*
  * Color dodge
- * B(Dca, ab, Sca, as) =
+ * B(Dca, Da, Sca, Sa) =
  *   if Sca == Sa
  *     (Dca != 0).Sa.Da
  *   otherwise
@@ -643,7 +643,7 @@ PDF_SEPARABLE_BLEND_MODE (color_dodge)
 
 /*
  * Color burn
- * B(Dca, ab, Sca, as) =
+ * B(Dca, Da, Sca, Sa) =
  *   if Sca. == 0
  *     (Da == Dca).Sa.Da
  *   otherwise
@@ -668,7 +668,7 @@ PDF_SEPARABLE_BLEND_MODE (color_burn)
 
 /*
  * Hard light
- * B(Dca, ab, Sca, as) =
+ * B(Dca, Da, Sca, Sa) =
  *   if 2.Sca < Sa
  *     2.Sca.Dca
  *   otherwise
@@ -687,7 +687,7 @@ PDF_SEPARABLE_BLEND_MODE (hard_light)
 
 /*
  * Soft light
- * B(Dca, ab, Sca, as) =
+ * B(Dca, Da, Sca, Sa) =
  *   if (2.Sca <= Sa)
  *     Dca.(Sa - (1 - Dca/Da).(2.Sca - Sa))
  *   otherwise if Dca.4 <= Da
@@ -734,7 +734,7 @@ PDF_SEPARABLE_BLEND_MODE (soft_light)
 
 /*
  * Difference
- * B(Dca, ab, Sca, as) = abs (Dca.Sa - Sca.Da)
+ * B(Dca, Da, Sca, Sa) = abs (Dca.Sa - Sca.Da)
  */
 static inline comp4_t
 blend_difference (comp4_t dca, comp4_t da, comp4_t sca, comp4_t sa)
@@ -752,7 +752,7 @@ PDF_SEPARABLE_BLEND_MODE (difference)
 
 /*
  * Exclusion
- * B(Dca, ab, Sca, as) = (Sca.Da + Dca.Sa - 2.Sca.Dca)
+ * B(Dca, Da, Sca, Sa) = (Sca.Da + Dca.Sa - 2.Sca.Dca)
  */
 
 /* This can be made faster by writing it directly and not using


More information about the xorg-commit mailing list