From: Benjamin Otte Date: Thu, 16 Jul 2009 13:33:43 +0000 (+0200) Subject: Clarify color burn code - no semantical changes X-Git-Tag: pixman-0.15.18~29 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=12e829a8de1e45708b5dfeaa8137af6eeaf0f662;p=platform%2Fupstream%2Fpixman.git 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)); } }