Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8129033

Prism AA shaders ignore 3D transforms

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • fx2.0
    • fx2.0
    • javafx
    • None

      The optimized AA shaders in the Prism shader graphics object all extract the 2D contents of the transform, use it to calculate their rendering, and then throw away the 3D remainder of the transform. This isn't normally a problem because the scene graph doesn't use these methods to render FX Shape objects with these methods, but uses a 3D tesselated vertex buffer instead.

      Unfortunately there are cases where a Region (or other control) object may be rendered in a 3D transform and we can't use "intermediate buffer" techniques to isolate it from the 3D transform. Since these objects make direct calls to the Prism graphics object to render the background and border (round) rectangles we then end up in some corner cases in the AA shader code with a 3D transform. In those cases the result of the rendering will be significantly off from what the geometry would suggest.

      It should be a simple matter to have the AA shaders use the remainder of any 3D transform to modify the area of the screen that they render to. The results may not be perfectly optimal from an antialiased perspective, but it will be much better than the 3D-omitted results that are currently seen. Again, this would only happen in corner cases anyway.

            flar Jim Graham
            flar Jim Graham
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: