Open Bug 1338393 Opened 3 years ago Updated 2 years ago

Filter: have the coordinates in the FilterDescription be independent of the filter resolution

Categories

(Core :: Web Painting, defect)

defect
Not set

Tracking

()

People

(Reporter: u459114, Unassigned)

References

Details

Attachments

(1 file)

Bug 1287492 comment 26
mstange said:
It would be really nice to have the coordinates in the FilterDescription be independent of the filter resolution (for example in float user space pixels) and then convert to actual pixels only during painting, when we create FilterNodes from the FilterDescription (in FilterSupport). At that point we'd be able to look at the DrawTarget to know what resolution we should use for the intermediate surfaces and the FilterNode coordinate attributes.
1.
nsSVGFilterInstance::nsSVGFilterInstance(const nsStyleFilter& aFilter,
                                         nsIFrame* aTargetFrame,
                                         nsIContent* aTargetContent,
                                         const UserSpaceMetrics& aMetrics,
                                         const gfxRect& aTargetBBox,
                                         const gfxSize& aUserSpaceToFilterSpaceScale,
                                         const gfxSize& aFilterSpaceToUserSpaceScale)
Remove the last two scale vectors. How about aMetrics?

2. 
nsCSSFilterInstance cssFilterInstance(aFilter, shadowFallbackColor,
                                        mTargetBounds,
                                        mFrameSpaceInCSSPxToFilterSpaceTransform)
Remove the last parameter.
1. All attributes store in FilterPrimitiveDescription need to be float type. 
2. All attributes store in FilterPrimitiveDescription need to be in user-space(not filter space)
3. FilterPrimitiveDescription::PrimitiveSubregion should return Rect, instead of IntRect. Subregion should be in user space, not filter space
4. FilterPrimitiveDescription::FilterSpaceBounds should be rename as UserSpaceBounds and return Rect instead
5. FilterPrimitiveDescription generators(nsSVGFilterInstance/nsCSSFilterInstance) should not bring userspace-to-filterspace scale vectors into FilterPrimitiveDescription.
6. FilterSupport is in charge of convert user-space attributes in FilterPrimitiveDescription to filter-space attributes in FilterNodes.
Blocks: 852100
No longer blocks: 852100
See Also: → 925651
Assignee: cku → nobody
Component: Layout: View Rendering → Layout: Web Painting
You need to log in before you can comment on or make changes to this bug.