-
Enhancement
-
Resolution: Unresolved
-
P4
-
fx1.0
The Merge effect is a simple SrcOver combination of its inputs, but it involves creating an intermediate image to achieve its results. When it is used internally in a chain of effects then it would have to produce an image result for the next stage of the effect chain, but when it is used directly (or as the top of a chain in another DelegateEffect), then it could override the render() method and render its results directly into the destination instead of doing so in an intermediate image. This would reduce the number of intermediate image stages for DropShadow by 1 stage, benefitting all.
The same is true for the SrcOver mode of the Blend effect (and possibly other blend effects - TBD) and so the same optimization could be conditionally applied for the Blend effect.
Finally, these effects could also optimize away a scaling stage in their input effects if those effects are intended to work in User Space (as indicated by the operatesInUserSpace() method) by passing them an identity transform and then performing the indicated scaling, with the necessary interpolation filter as they are rendered to the destination. This would greatly reduce the memory/VRAM requirements for applying these user space filters in a scaled coordinate system.
The same is true for the SrcOver mode of the Blend effect (and possibly other blend effects - TBD) and so the same optimization could be conditionally applied for the Blend effect.
Finally, these effects could also optimize away a scaling stage in their input effects if those effects are intended to work in User Space (as indicated by the operatesInUserSpace() method) by passing them an identity transform and then performing the indicated scaling, with the necessary interpolation filter as they are rendered to the destination. This would greatly reduce the memory/VRAM requirements for applying these user space filters in a scaled coordinate system.
- relates to
-
JDK-8109406 java.lang.NullPointerException in com.sun.scenario.scenegraph.NodeEffectInput.filter(NodeEffectInput.java:110)
-
- Closed
-
-
JDK-8106719 NullPointerException when filter effect needs an image that is too large
-
- Closed
-