RESOLVED FIXED 241535
[Filters] LightSource should keep its points in <length-percentage> units
https://bugs.webkit.org/show_bug.cgi?id=241535
Summary [Filters] LightSource should keep its points in <length-percentage> units
Said Abou-Hallawa
Reported 2022-06-11 21:32:12 PDT
Created attachment 460186 [details] fePointLight test case Open the attached test cases. Expected: A green circle and green ellipse should be drawn. The problem is PointLightSource and SpotLightSource are created with points in user space coordinates. See SVGFEPointLightElement::lightSource() and SVGFESpotLightElement::lightSource(). But this requires knowing the filter targetBoundingBox and the primitiveUnits. When dynamically updating these points through SVGFEDiffuseLightingElement::setFilterEffectAttribute() or SVGFESpecularLightingElement::setFilterEffectAttribute() the filter is not available and these points are set in logical coordinates. This means these points will have values between -1 and 1 in user space coordinates. This is why the green circle and ellipse are not shown in the test cases. The fix is to make LightSource store their points in logical coordinates and to resolve them to user space coordinates in initPaintingData().
Attachments
fePointLight test case (1.18 KB, image/svg+xml)
2022-06-11 21:32 PDT, Said Abou-Hallawa
no flags
feSpotLight test case (1.34 KB, image/svg+xml)
2022-06-11 21:33 PDT, Said Abou-Hallawa
no flags
Said Abou-Hallawa
Comment 1 2022-06-11 21:33:49 PDT
Created attachment 460187 [details] feSpotLight test case
Said Abou-Hallawa
Comment 2 2022-06-11 21:38:33 PDT
Said Abou-Hallawa
Comment 3 2022-06-12 20:08:13 PDT
See https://drafts.csswg.org/css-values-4/#typedef-length-percentage for the definition of <length-percentage>.
Radar WebKit Bug Importer
Comment 4 2022-06-12 20:24:23 PDT
EWS
Comment 5 2022-06-12 21:27:41 PDT
Committed r295481 (251486@main): <https://commits.webkit.org/251486@main> Reviewed commits have been landed. Closing PR #1462 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.