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;
+               }
        }
 }
 

Reply via email to