This is an automated email from the ASF dual-hosted git repository. harbs pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 0e577ac948d7a4c9f64b956b1e053e3eb4b8c60f Author: DESKTOP-RH4S838\Yishay <[email protected]> AuthorDate: Sun Jul 8 16:59:26 2018 +0300 Add inset option to DropDownFilter --- .../Graphics/src/main/resources/defaults.css | 2 + .../org/apache/royale/svg/DropShadowFilter.as | 59 +++++++++++++++++----- 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/frameworks/projects/Graphics/src/main/resources/defaults.css b/frameworks/projects/Graphics/src/main/resources/defaults.css index da97e79..99d45ee 100644 --- a/frameworks/projects/Graphics/src/main/resources/defaults.css +++ b/frameworks/projects/Graphics/src/main/resources/defaults.css @@ -44,4 +44,6 @@ svg|DropShadowFilter BlurFilterElement: ClassReference("org.apache.royale.svg.BlurFilterElement"); BlendFilterElement: ClassReference("org.apache.royale.svg.BlendFilterElement"); SpreadFilterElement: ClassReference("org.apache.royale.svg.SpreadFilterElement"); + CompositeFilterElement: ClassReference("org.apache.royale.svg.CompositeFilterElement"); + InvertFilterElement: ClassReference("org.apache.royale.svg.InvertFilterElement"); } \ No newline at end of file diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as index c9f90bc..dddc808 100644 --- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as +++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as @@ -42,6 +42,7 @@ package org.apache.royale.svg private var _blue:Number = 0; private var _opacity:Number = 1; private var _spread:Number = 1; + private var _inset:Boolean; public function DropShadowFilter() { @@ -62,6 +63,10 @@ package org.apache.royale.svg return; } loadBeadFromValuesManager(Filter, "filter", value); + if (inset) + { + loadBeadFromValuesManager(InvertFilterElement, "invertFilterElement", value); + } var offset:OffsetFilterElement = loadBeadFromValuesManager(OffsetFilterElement, "offsetFilterElement", value) as OffsetFilterElement; offset.dx = dx; offset.dy = dy; @@ -73,11 +78,21 @@ package org.apache.royale.svg colorMatrix.blue = blue; colorMatrix.opacity = opacity; var spreadElement:SpreadFilterElement = loadBeadFromValuesManager(SpreadFilterElement, "spreadFilterElement", value) as SpreadFilterElement; - spreadElement.result = "spreadResult"; + if (!inset) + { + spreadElement.result = "spreadResult"; + } spreadElement.spread = spread; + if (inset) + { + var composite:CompositeFilterElement = loadBeadFromValuesManager(CompositeFilterElement, "compositeFilterElement", value) as CompositeFilterElement; + composite.in2 = "SourceAlpha"; + composite.operator = "in"; + composite.result = "compositeResult"; + } var blend:BlendFilterElement = loadBeadFromValuesManager(BlendFilterElement, "blendFilterElement", value) as BlendFilterElement; - blend.in = "SourceGraphic"; - blend.in2 = "spreadResult"; + blend.in = inset ? "compositeResult" : "SourceGraphic"; + blend.in2 = inset ? "SourceGraphic" : "spreadResult"; value.removeBead(this); } @@ -88,16 +103,16 @@ package org.apache.royale.svg if (c) { COMPILE::JS - { - var f:Function = c as Function; - result = new f() as IBead; - } - COMPILE::SWF - { - result = new c() as IBead; - } - if (result) - strand.addBead(result); + { + var f:Function = c as Function; + result = new f() as IBead; + } + COMPILE::SWF + { + result = new c() as IBead; + } + if (result) + strand.addBead(result); } return result; } @@ -245,6 +260,24 @@ package org.apache.royale.svg { _spread = value; } + + /** + * Whether or not the drop shadow is inset. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.3 + */ + public function get inset():Boolean + { + return _inset; + } + + public function set inset(value:Boolean):void + { + _inset = value; + } } }
