-
Enhancement
-
Resolution: Fixed
-
P4
-
fx2.0
If you run a program that uses filter effects (such as Ensemble, ColorfulCircles, or HelloEffects) with the null3d pipeline, you will get an exception:
$java -prism.order=null3d helloworld.HelloEffects
java.lang.ClassCastException: com.sun.scenario.effect.impl.j2d.J2DHeapImage cannot be cast to com.sun.scenario.effect.impl.prism.PrDrawable
at com.sun.javafx.sg.prism.NodeEffectInput.getImageDataForBoundedNode(NodeEffectInput.java:162)
at com.sun.javafx.sg.prism.NodeEffectInput.filter(NodeEffectInput.java:74)
at com.sun.scenario.effect.PerspectiveTransform.filter(PerspectiveTransform.java:203)
at com.sun.scenario.effect.impl.prism.PrEffectHelper.render(PrEffectHelper.java:138)
at com.sun.javafx.sg.prism.NGNode$EffectFilter.render(NGNode.java:540)
at com.sun.javafx.sg.prism.NGNode.renderEffect(NGNode.java:285)
at com.sun.javafx.sg.prism.NGNode$CacheFilter.impl_renderNodeToScreen(NGNode.java:495)
at com.sun.javafx.sg.BaseCacheFilter.render(BaseCacheFilter.java:165)
at com.sun.javafx.sg.prism.NGNode$CacheFilter.render(NGNode.java:445)
at com.sun.javafx.sg.prism.NGNode.renderCached(NGNode.java:281)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:91)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:36)
at com.sun.javafx.sg.BaseNode.render(BaseNode.java:909)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:148)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:95)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:36)
at com.sun.javafx.sg.BaseNode.render(BaseNode.java:909)
at com.sun.javafx.tk.quantum.PrismPen$PaintRunnable.paintImpl(PrismPen.java:197)
at com.sun.javafx.tk.quantum.PrismPen$PaintRunnable.run(PrismPen.java:313)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at com.sun.prism.tkal.RenderJob.run(RenderJob.java:29)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
$java -prism.order=null3d helloworld.HelloEffects
java.lang.ClassCastException: com.sun.scenario.effect.impl.j2d.J2DHeapImage cannot be cast to com.sun.scenario.effect.impl.prism.PrDrawable
at com.sun.javafx.sg.prism.NodeEffectInput.getImageDataForBoundedNode(NodeEffectInput.java:162)
at com.sun.javafx.sg.prism.NodeEffectInput.filter(NodeEffectInput.java:74)
at com.sun.scenario.effect.PerspectiveTransform.filter(PerspectiveTransform.java:203)
at com.sun.scenario.effect.impl.prism.PrEffectHelper.render(PrEffectHelper.java:138)
at com.sun.javafx.sg.prism.NGNode$EffectFilter.render(NGNode.java:540)
at com.sun.javafx.sg.prism.NGNode.renderEffect(NGNode.java:285)
at com.sun.javafx.sg.prism.NGNode$CacheFilter.impl_renderNodeToScreen(NGNode.java:495)
at com.sun.javafx.sg.BaseCacheFilter.render(BaseCacheFilter.java:165)
at com.sun.javafx.sg.prism.NGNode$CacheFilter.render(NGNode.java:445)
at com.sun.javafx.sg.prism.NGNode.renderCached(NGNode.java:281)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:91)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:36)
at com.sun.javafx.sg.BaseNode.render(BaseNode.java:909)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:148)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:95)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:36)
at com.sun.javafx.sg.BaseNode.render(BaseNode.java:909)
at com.sun.javafx.tk.quantum.PrismPen$PaintRunnable.paintImpl(PrismPen.java:197)
at com.sun.javafx.tk.quantum.PrismPen$PaintRunnable.run(PrismPen.java:313)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at com.sun.prism.tkal.RenderJob.run(RenderJob.java:29)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)