JDK-8112859 : Mac: Scene with perspectiveCamera rendered inverted in the Y axis and with some incorrect dirty region computation
  • Type: Bug
  • Component: javafx
  • Sub-Component: graphics
  • Affected Version: fx2.0
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2011-05-07
  • Updated: 2015-06-16
  • Resolved: 2011-12-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
fx2.1Fixed
Related Reports
Blocks :  
Blocks :  
Blocks :  
Blocks :  
Duplicate :  
Duplicate :  
Relates :  
Description
All programs in runtime/toys that contain perspectiveCamera are broken on Mac. The program such as ZbufferTest are rendered up-side down.
I've attached a simple test to illustrate the problem. The rectangle is rendered inverted on a Mac as to on a Windows machine.
Comments
That's awesome news.
16-03-2012

Verified.
16-03-2012

I've verified that this bug is no longer reproducible on my Mac with the latest 2.1 build.
16-03-2012

http://jfxsrc.us.oracle.com/javafx/2.1/scrum/graphics/rt-closed/rev/906a44f895df
13-12-2011

This bug will be fixed in the 2.1 release. Note that JavaFX on Mac OS X is still a developer preview release in 2.0.2 and not something you can deploy.
15-11-2011

I would really like this to be fixed. It is a showstopper for the 3D aspects of our product, since our application has to work on both Mac and Windows.
15-11-2011

The basic problem is that there are places in prism common code that will flip the transform if we are on ES2 and rendering to a texture, but it isn't done consistently or in the right place. The bug was exposed when we started rendering to a texture for blending and LCD text (and also when turning on dirtyopts), due to the following code in ES2Context.java: // update projection matrix; this will be uploaded to the shader // along with the modelview matrix in updateShaderTransform() boolean flip = target instanceof ES2RTTexture; projViewTx = camera.getProjViewTx(projViewTx, w, h, flip); A quick attempt by Joe to fix this for 2.0 ran into problems in that if we don't invert Y in the transform for RTT, the rendering looked correct (at least for that case), but picking stopped working. I think the main problem is that the whole "invert Y in the common projection matrix if using ES2 and rendering to a texture" is flawed. If the final matrix needs to be inverted at all, it should be done in pipeline-dependent code not in a pipeline-independent transform.
14-11-2011

Approved at deferral review meeting on 8/10/11
10-08-2011

SQE: ok to defer
04-08-2011