What does your test case look like if shadowdistance is non-zero? That's the
thing I'm worried about.
If shadowdistance is 0 the angle is irrelevant. The angle does not affect blur.
On 2010-11-01, at 16:43, Max Carlson wrote:
> Nope, sorry. We need to overload shadowblurradius, not shadowdistance. It
> just doesn't work in practice to use distance, because it forces the shadow
> to be offset according to the angle...
>
> So, I stand by my original change!
>
> Here's an updated testcase so you see what I mean:
> <canvas>
> <view x="10" y="10" shadowblurradius="-100" shadowdistance="0" width="100"
> height="100" bgcolor="white" oninit="this.animate('shadowblurradius', 100,
> 10000)"/>
> </canvas>
>
> On 10/29/10 7:33 PM, P T Withington wrote:
>> Shadow angle + distance are polar coordinates that are equivalent to the
>> cartesian coordinates x-offset + y-offset. That's the transform we're
>> making. x = d * cos(a), y = d * sin(a), right?
>>
>> Blur radius is the radius of the blur around the edge of the shadow. The
>> shadow is at 100% at edge-radius and 0% at edge+radius. This is the same
>> for us an CSS.
>>
>> CSS has an additional property 'spread distance', which is how much
>> bigger/smaller the shadow is than the original box. That is, this value is
>> added to the coordinates of the edge of the shadow box, making it
>> correspondingly larger (or smaller for a negative value) than the original
>> box. We have no equivalent parameter for this, that I can see.
>>
>> Finally, CSS has a flag, 'inset'.
>>
>> Since blur radius is the same in both models, it seems odd to me to use the
>> sign of that to encode 'inset'.
>>
>> On the other hand, a negative distance in polar coordinates makes no sense,
>> so it seemed reasonable to me for that to be the encoding for 'inset'.
>> Especially where a distance of 0 is "no shadow", _unless_ you apply a blur,
>> in which case you will see only the outside half of the blur (which I guess
>> we call a glow).
>>
>> In fact, if you consider animating attributes, it makes a lot more sense to
>> use the sign of distance to mean inset because by animating distance from
>> from a positive to negative value, you would make the shadow go smoothly
>> from giving an outdented appearance, through no shadow, to an indented
>> appearance. Whereas animating the blur radius from positive to negative
>> would make the shadow go from blurred to sharp, then suddenly jump to an
>> inset shadow, that slowly gets blurred.
>>
>> I'd still like to see a separate flag, so you don't have to use `-0` to mean
>> an 'inset glow', but I guess we might as well make use of the existence of
>> -0.
>>
>> On 2010-10-29, at 19:48, Max Carlson wrote:
>>
>>> I thought we agreed on shadowblurradius. Otherwise, you can't set the
>>> start of the shadow distinctly from where it ends: blurradius - distance...
>>
>> I think you are confusing distance here with the CSS 'spread' value, which
>> we don't have. And that is what that value is for, to make the shadow a
>> different size than the box is is created from
>>
>> At least that's what I take from the reference Fred sent:
>>
>> http://www.w3.org/TR/css3-background/#the-box-shadow
>>
>>> On Oct 29, 2010, at 4:38 PM, P T Withington wrote:
>>>
>>>> I thought we agreed that we were going to use negative shadowdistance
>>>> values to mean 'inset'?
>>>>
>>>> On 2010-10-29, at 19:34, Max Carlson wrote:
>>>>
>>>>> Change maxcarlson-20101029-Ujt by [email protected] on 2010-10-29
>>>>> 16:16:27 PDT
>>>>> in /Users/maxcarlson/openlaszlo/trunk2
>>>>> for http://svn.openlaszlo.org/openlaszlo/trunk
>>>>>
>>>>> Summary: Add support for inner shadows to swf10 and DHTML
>>>>>
>>>>> Bugs Fixed: LPP-9466 - inner glow/shadow
>>>>>
>>>>> Technical Reviewer: ptw
>>>>> QA Reviewer: ffeng
>>>>>
>>>>> Overview: Setting a negative shadowblurradius value will cause the
>>>>> LzSprite.js - Set 'inset' property to work for negative shadowblurradius
>>>>> values.
>>>>>
>>>>> Details: LzSprite.as - Set 'inner' property to work for negative
>>>>> shadowblurradius values. Add typing, remove unneeded this.
>>>>>
>>>>> LaszloView - Snap values that are close to 0 to 0, update documentation
>>>>>
>>>>> Tests: See LPP-9466 for a testcase.
>>>>>
>>>>> Files:
>>>>> M WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
>>>>> M WEB-INF/lps/lfc/kernel/swf9/LzSprite.as
>>>>> M WEB-INF/lps/lfc/views/LaszloView.lzs
>>>>>
>>>>> Changeset:
>>>>> http://svn.openlaszlo.org/openlaszlo/patches/maxcarlson-20101029-Ujt.tar
>>>>
>>>
>>