mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-01 00:32:11 +00:00
Bug 1343436 - Fix filter result for baseFrequency="0" type="fractalNoise". r=longsonr+218550
MozReview-Commit-ID: LLAr9ifux98 --HG-- extra : rebase_source : 7e70fa361b2377ba180f96862d19ce22a2725438
This commit is contained in:
parent
776140ce79
commit
fa5619d298
@ -133,8 +133,15 @@ SVGFETurbulenceElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
uint16_t stitch = mEnumAttributes[STITCHTILES].GetAnimValue();
|
||||
|
||||
if (fX == 0 || fY == 0) {
|
||||
// A base frequency of zero results in transparent black for
|
||||
// type="turbulence" and in 50% alpha 50% gray for type="fractalNoise".
|
||||
if (type == SVG_TURBULENCE_TYPE_TURBULENCE) {
|
||||
return FilterPrimitiveDescription(PrimitiveType::Empty);
|
||||
}
|
||||
FilterPrimitiveDescription descr(PrimitiveType::Flood);
|
||||
descr.Attributes().Set(eFloodColor, Color(0.5, 0.5, 0.5, 0.5));
|
||||
return descr;
|
||||
}
|
||||
|
||||
// We interpret the base frequency as relative to user space units. In other
|
||||
// words, we consider one turbulence base period to be 1 / fX user space
|
||||
|
@ -0,0 +1,13 @@
|
||||
<!--
|
||||
Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/
|
||||
-->
|
||||
<!--
|
||||
This is the reference image for feTurbulence-zero-baseFreq.svg.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="0" y="0" width="400" height="100" fill="blue"/>
|
||||
<rect x="0" y="100" width="400" height="100" fill="lime"/>
|
||||
<!-- nothing in place of the type="turbulence" filter -->
|
||||
<rect x="200" y="50" width="100" height="100" fill="rgba(128, 128, 128, 0.5)"/>
|
||||
</svg>
|
After Width: | Height: | Size: 506 B |
23
layout/reftests/svg/filters/feTurbulence-zero-baseFreq.svg
Normal file
23
layout/reftests/svg/filters/feTurbulence-zero-baseFreq.svg
Normal file
@ -0,0 +1,23 @@
|
||||
<!--
|
||||
Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/
|
||||
-->
|
||||
<!--
|
||||
This test verifies that feTurbulence with baseFrequency="0" creates
|
||||
a transparent black result for type="turbulence" and a 50% alpha
|
||||
50% gray result for type="fractalNoise".
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<filter id="filterTurbulence" primitiveUnits="objectBoundingBox" color-interpolation-filters="sRGB">
|
||||
<feTurbulence type="turbulence" baseFrequency="0" numOctaves="1"
|
||||
x="0%" y="0%" width="100%" height="100%"/>
|
||||
</filter>
|
||||
<filter id="filterFractalNoise" primitiveUnits="objectBoundingBox" color-interpolation-filters="sRGB">
|
||||
<feTurbulence type="fractalNoise" baseFrequency="0" numOctaves="1"
|
||||
x="0%" y="0%" width="100%" height="100%"/>
|
||||
</filter>
|
||||
<rect x="0" y="0" width="400" height="100" fill="blue"/>
|
||||
<rect x="0" y="100" width="400" height="100" fill="lime"/>
|
||||
<rect x="50" y="50" width="100" height="100" filter="url(#filterTurbulence)"/>
|
||||
<rect x="200" y="50" width="100" height="100" filter="url(#filterFractalNoise)"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
@ -119,6 +119,7 @@ fuzzy(2,2659) skip-if(d2d) == feSpecularLighting-1.svg feSpecularLighting-1-ref.
|
||||
== fePointLight-zoomed-page.svg fePointLight-zoomed-page-ref.svg
|
||||
|
||||
== feTurbulence-offset.svg feTurbulence-offset-ref.svg
|
||||
fuzzy(1,10000) == feTurbulence-zero-baseFreq.svg feTurbulence-zero-baseFreq-ref.svg
|
||||
|
||||
== outside-sourcegraphic-1.svg outside-sourcegraphic-ref.svg
|
||||
== outside-sourcegraphic-2.svg outside-sourcegraphic-ref.svg
|
||||
|
Loading…
Reference in New Issue
Block a user