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