This is an automated email from the ASF dual-hosted git repository. yishayw pushed a commit to branch feature/revert-refactor in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 964422693c23c2847a5ca37742f9ab29a2de3ea3 Author: DESKTOP-RH4S838\Yishay <[email protected]> AuthorDate: Wed Jul 4 18:04:48 2018 +0300 Some additions to make inset shadows possible --- .../Graphics/src/main/resources/svg-manifest.xml | 2 + .../org/apache/royale/svg/BlendFilterElement.as | 12 ++++- ...dFilterElement.as => CompositeFilterElement.as} | 61 +++++++++++++++------- ...lendFilterElement.as => InvertFilterElement.as} | 34 +++--------- ...BlendFilterElement.as => MergeFilterElement.as} | 1 - .../org/apache/royale/svg/OffsetFilterElement.as | 12 ++++- 6 files changed, 75 insertions(+), 47 deletions(-) diff --git a/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml b/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml index d5b906b..ed49401 100644 --- a/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml +++ b/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml @@ -28,6 +28,8 @@ <component id="ColorMatrixFilterElement" class="org.apache.royale.svg.ColorMatrixFilterElement" /> <component id="SpreadFilterElement" class="org.apache.royale.svg.SpreadFilterElement" /> <component id="BlurFilterElement" class="org.apache.royale.svg.BlurFilterElement" /> + <component id="InvertFilterElement" class="org.apache.royale.svg.InvertFilterElement" /> + <component id="CompositeFilterElement" class="org.apache.royale.svg.CompositeFilterElement" /> <component id="BlendFilterElement" class="org.apache.royale.svg.BlendFilterElement" /> <component id="MaskBead" class="org.apache.royale.svg.MaskBead" /> <component id="DisableClipBead" class="org.apache.royale.svg.DisableClipBead" /> diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as index 9e46592..bca53eb 100644 --- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as +++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as @@ -40,6 +40,7 @@ package org.apache.royale.svg { private var _strand:IStrand; private var _in2:String; + private var _in:String; public function BlendFilterElement() { @@ -68,7 +69,7 @@ package org.apache.royale.svg { var filter:Element = (_strand.getBeadByType(Filter) as Filter).filterElementWrapper; var blend:Element = addSvgElementToElement(filter, "feBlend") as Element; - blend.setAttribute("in", "SourceGraphic"); + blend.setAttribute("in", in); blend.setAttribute("in2", in2); blend.setAttribute("mode", "normal"); } @@ -92,6 +93,15 @@ package org.apache.royale.svg _in2 = value; } + public function get in():String + { + return _in; + } + + public function set in(value:String):void + { + _in = value; + } } } diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as similarity index 65% copy from frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as copy to frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as index 9e46592..00da207 100644 --- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as +++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as @@ -29,19 +29,22 @@ package org.apache.royale.svg } /** - * The BlendFilterElement blends several filter elements + * The CompositeFilterElement takes two objects and applies Porter/Duff operators * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion Royale 0.9.3 */ - public class BlendFilterElement implements IBead + public class CompositeFilterElement implements IBead { private var _strand:IStrand; + private var _in:String; private var _in2:String; + private var _result:String; + private var _operator:String; - public function BlendFilterElement() + public function CompositeFilterElement() { } @@ -67,31 +70,53 @@ package org.apache.royale.svg COMPILE::JS { var filter:Element = (_strand.getBeadByType(Filter) as Filter).filterElementWrapper; - var blend:Element = addSvgElementToElement(filter, "feBlend") as Element; - blend.setAttribute("in", "SourceGraphic"); - blend.setAttribute("in2", in2); - blend.setAttribute("mode", "normal"); + var compositeElement:Element = addSvgElementToElement(filter, "feComposite") as Element; + compositeElement.setAttribute("in", in); + compositeElement.setAttribute("in2", in2); + compositeElement.setAttribute("result", result); + compositeElement.setAttribute("operator", operator); } } - /** - * The filter element result which is blended with the source graphic. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9.3 - */ - public function get in2():String + public function get in():String { - return _in2; + return _in; + } + + public function set in(value:String):void + { + _in = value; } - public function set in2(value:String):void + public function get in2():String + { + return _in2; + } + + public function set in2(value:String):void { _in2 = value; } + public function get operator():String + { + return _operator; + } + + public function set operator(value:String):void + { + _operator = value; + } + + public function get result():String + { + return _result; + } + + public function set result(value:String):void + { + _result = value; + } } } diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/InvertFilterElement.as similarity index 73% copy from frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as copy to frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/InvertFilterElement.as index 9e46592..a2cd104 100644 --- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as +++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/InvertFilterElement.as @@ -29,19 +29,18 @@ package org.apache.royale.svg } /** - * The BlendFilterElement blends several filter elements + * The InvertFilterElement makes a filter inset * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion Royale 0.9.3 */ - public class BlendFilterElement implements IBead + public class InvertFilterElement implements IBead { private var _strand:IStrand; - private var _in2:String; - public function BlendFilterElement() + public function InvertFilterElement() { } @@ -67,31 +66,14 @@ package org.apache.royale.svg COMPILE::JS { var filter:Element = (_strand.getBeadByType(Filter) as Filter).filterElementWrapper; - var blend:Element = addSvgElementToElement(filter, "feBlend") as Element; - blend.setAttribute("in", "SourceGraphic"); - blend.setAttribute("in2", in2); - blend.setAttribute("mode", "normal"); + var componentTransfer:Element = addSvgElementToElement(filter, "feComponentTransfer") as Element; + componentTransfer.setAttribute("in", "SourceAlpha"); + var funcA:Element = addSvgElementToElement(componentTransfer, "feFuncA") as Element; + funcA.setAttribute("type", "table"); + funcA.setAttribute("tableValues", "1 0"); } } - /** - * The filter element result which is blended with the source graphic. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9.3 - */ - public function get in2():String - { - return _in2; - } - - public function set in2(value:String):void - { - _in2 = value; - } - } } diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/MergeFilterElement.as similarity index 99% copy from frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as copy to frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/MergeFilterElement.as index 9e46592..655242c 100644 --- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as +++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/MergeFilterElement.as @@ -91,7 +91,6 @@ package org.apache.royale.svg { _in2 = value; } - } } diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as index f2a57a7..7f4d9b6 100644 --- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as +++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as @@ -42,6 +42,7 @@ package org.apache.royale.svg private var _strand:IStrand; private var _dx:Number = 0; private var _dy:Number = 0; + private var _in:String; private var _offsetResult:String = "offsetResult"; public function OffsetFilterElement() @@ -73,7 +74,7 @@ package org.apache.royale.svg var offset:Element = addSvgElementToElement(filter, "feOffset") as Element; offset.setAttribute("dx", dx); offset.setAttribute("dy", dy); - offset.setAttribute("in", "SourceAlpha"); +// offset.setAttribute("in", in); offset.setAttribute("result", offsetResult); } } @@ -133,6 +134,15 @@ package org.apache.royale.svg _offsetResult = value; } + public function get in():String + { + return _in; + } + + public function set in(value:String ):void + { + _in = value; + } } }
