From 55115d779b08fbd8970bd6e580cc255d7ab23ba6 Mon Sep 17 00:00:00 2001 From: Marius Date: Mon, 5 Sep 2011 14:00:14 +0300 Subject: beta 2011.09.05 12:54 --- metapost/context/base/mp-mlib.mp | 41 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'metapost/context/base/mp-mlib.mp') diff --git a/metapost/context/base/mp-mlib.mp b/metapost/context/base/mp-mlib.mp index 04c8be099..59028640c 100644 --- a/metapost/context/base/mp-mlib.mp +++ b/metapost/context/base/mp-mlib.mp @@ -18,6 +18,7 @@ boolean context_mlib ; context_mlib := true ; %D Color and transparency +%D Standard separable blend modes newinternal normaltransparent ; normaltransparent := 1 ; newinternal multiplytransparent ; multiplytransparent := 2 ; newinternal screentransparent ; screentransparent := 3 ; @@ -30,6 +31,11 @@ newinternal darkentransparent ; darkentransparent := 9 ; newinternal lightentransparent ; lightentransparent := 10 ; newinternal differencetransparent ; differencetransparent := 11 ; newinternal exclusiontransparent ; exclusiontransparent := 12 ; +%D Standard nonseparable blend modes +newinternal huetransparent ; huetransparent := 13 ; +newinternal saturationtransparent ; saturationtransparent := 14 ; +newinternal colortransparent ; colortransparent := 15 ; +newinternal luminositytransparent ; luminositytransparent := 16 ; vardef transparency_alternative_to_number(expr name) = if string name : @@ -38,7 +44,7 @@ vardef transparency_alternative_to_number(expr name) = else : 0 fi - elseif name < 13 : + elseif name < 17 : name else : 0 @@ -363,6 +369,39 @@ primarydef p withshade sc = p withprescript _defined_cs_pre_[sc] enddef ; + +vardef define_sampled_linear_shade(expr a,b,n)(text t) = + _defined_cs_ := _defined_cs_ + 1 ; + _defined_cs_pre_ [_defined_cs_] := "ssh_type=linear" + & prescript_separator & "ssh_center_a=" & ddecimal (a shifted shadeoffset) + & prescript_separator & "ssh_center_b=" & ddecimal (b shifted shadeoffset) + & prescript_separator & "ssh_nofcolors=" & decimal n + & prescript_separator & "ssh_domain=" & domstr + & prescript_separator & "ssh_extend=" & extstr + & prescript_separator & "ssh_colors=" & colstr + & prescript_separator & "ssh_bounds=" & bndstr + & prescript_separator & "ssh_ranges=" & ranstr + ; + _defined_cs_ +enddef ; + +vardef define_sampled_circular_shade(expr a,b,ra,rb,n)(text t) = + _defined_cs_ := _defined_cs_ + 1 ; + _defined_cs_pre_ [_defined_cs_] := "ssh_type=circular" + & prescript_separator & "ssh_center_a=" & ddecimal (a shifted shadeoffset) + & prescript_separator & "ssh_radius_a=" & decimal ra + & prescript_separator & "ssh_center_b=" & ddecimal (b shifted shadeoffset) + & prescript_separator & "ssh_radius_b=" & decimal rb + & prescript_separator & "ssh_nofcolors=" & decimal n + & prescript_separator & "ssh_domain=" & domstr + & prescript_separator & "ssh_extend=" & extstr + & prescript_separator & "ssh_colors=" & colstr + & prescript_separator & "ssh_bounds=" & bndstr + & prescript_separator & "ssh_ranges=" & ranstr + ; + _defined_cs_ +enddef ; + % vardef predefined_linear_shade (expr p, n, ca, cb) = % save a, b, sh ; pair a, b ; % set_linear_vector(a,b)(p,n) ; -- cgit v1.2.3