Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 6.2.3
-
Fix Version/s: 6.2.4
-
Component/s: Core/Rendering
-
Labels:None
-
Environment:macOS and Sun JDK
Description
A community member has sent us a test case that contains a multiply composite blending effect on a highlight annotations appearance stream. When the content stream shapes are rendered on OSX on a Oracle JDK the following exception is thrown.
Caused by: java.lang.InternalError: not implemented yet
at sun.java2d.opengl.OGLSurfaceData.getRaster(OGLSurfaceData.java:397)
at sun.java2d.pipe.GeneralCompositePipe.renderPathTile(GeneralCompositePipe.java:100)
at sun.java2d.pipe.SpanShapeRenderer$Composite.renderBox(SpanShapeRenderer.java:60)
at sun.java2d.pipe.SpanShapeRenderer.spanClipLoop(SpanShapeRenderer.java:213)
at sun.java2d.pipe.SpanShapeRenderer.renderSpans(SpanShapeRenderer.java:196)
at sun.java2d.pipe.SpanShapeRenderer.draw(SpanShapeRenderer.java:90)
at sun.java2d.pipe.PixelToShapeConverter.drawLine(PixelToShapeConverter.java:52)
at sun.java2d.pipe.ValidatePipe.drawLine(ValidatePipe.java:62)
at sun.java2d.SunGraphics2D.drawLine(SunGraphics2D.java:2137)
at ogl.CustomCompositeTest$TestComponent.renderTest(CustomCompositeTest.java:100)
at ogl.CustomCompositeTest$TestComponent.paintComponent(CustomCompositeTest.java:86)
Caused by: java.lang.InternalError: not implemented yet
at sun.java2d.opengl.OGLSurfaceData.getRaster(OGLSurfaceData.java:397)
at sun.java2d.pipe.GeneralCompositePipe.renderPathTile(GeneralCompositePipe.java:100)
at sun.java2d.pipe.SpanShapeRenderer$Composite.renderBox(SpanShapeRenderer.java:60)
at sun.java2d.pipe.SpanShapeRenderer.spanClipLoop(SpanShapeRenderer.java:213)
at sun.java2d.pipe.SpanShapeRenderer.renderSpans(SpanShapeRenderer.java:196)
at sun.java2d.pipe.SpanShapeRenderer.draw(SpanShapeRenderer.java:90)
at sun.java2d.pipe.PixelToShapeConverter.drawLine(PixelToShapeConverter.java:52)
at sun.java2d.pipe.ValidatePipe.drawLine(ValidatePipe.java:62)
at sun.java2d.SunGraphics2D.drawLine(SunGraphics2D.java:2137)
at ogl.CustomCompositeTest$TestComponent.renderTest(CustomCompositeTest.java:100)
at ogl.CustomCompositeTest$TestComponent.paintComponent(CustomCompositeTest.java:86)
The issue seems to be related to https://bugs.openjdk.java.net/browse/JDK-8004861 . I've confirmed this on JDK 1.8.0_131 on macOS and have tried JDK 9 EA and the exception has been removed but no effect is rendered. And thus still likely an OpenGL implementations issue.
We may have to add some code to detect macOS and turn off the blending modes in favour of just using a transparency values. This isn't ideal as it's a step backwards in our rendering core but unfortunately there doesn't appear to be a lot we can do given this is happening at such a low level.