You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2018/07/09 12:58:37 UTC
[royale-asjs] 14/15: Add inset option to DropDownFilter
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 <yi...@hotmail.com>
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;
+ }
}
}