Class CanvasSwing

  • All Implemented Interfaces:
    com.jogamp.nativewindow.awt.AWTPrintLifecycle, com.jogamp.nativewindow.NativeSurfaceHolder, com.jogamp.nativewindow.ScalableSurface, com.jogamp.nativewindow.WindowClosingProtocol, com.jogamp.opengl.awt.AWTGLAutoDrawable, com.jogamp.opengl.awt.ComponentEvents, com.jogamp.opengl.GLAutoDrawable, com.jogamp.opengl.GLDrawable, com.jogamp.opengl.GLSharedContextSetter, ImageObserver, MenuContainer, Serializable, Accessible, ICanvas, INativeCanvas, IScreenCanvas

    public class CanvasSwing
    extends com.jogamp.opengl.awt.GLJPanel
    implements IScreenCanvas, INativeCanvas
    Author:
    Martin Pernollet
    See Also:
    Serialized Form
    • Constructor Detail

      • CanvasSwing

        public CanvasSwing​(IChartFactory factory,
                           Scene scene,
                           Quality quality,
                           com.jogamp.opengl.GLCapabilitiesImmutable glci)
        Initialize a Canvas3d attached to a Scene, with a given rendering Quality.
    • Method Detail

      • watchPixelScale

        protected void watchPixelScale()
      • setPixelScale

        public void setPixelScale​(float[] scale)
        Description copied from interface: ICanvas
        Defines pixel scale. On MacOS Retina displays, a X*Y chart uses a (X*2)*(Y*2) viewport. This makes some calculation based on viewport (such as Camera.screenToModel(IPainter, org.jzy3d.maths.Coord3d) output wrong result. When running on Retina display, those two options fixed buggy mouse selections on Retina:
        • setPixelScale(new float[]{0.5f,0.5f})
        • setPixelScale(new float[] { ScalableSurface.IDENTITY_PIXELSCALE, ScalableSurface.IDENTITY_PIXELSCALE })
          Specified by:
          setPixelScale in interface ICanvas
        • getPixelScale

          public Coord2d getPixelScale()
          Pixel scale is used to model the pixel ratio thay may be introduced by HiDPI or Retina displays.
          Specified by:
          getPixelScale in interface ICanvas
        • getPixelScaleJVM

          public Coord2d getPixelScaleJVM()
          Description copied from interface: ICanvas
          Provide pixel scale as considered feasible by the JVM.
          Specified by:
          getPixelScaleJVM in interface ICanvas
        • getPixelScaleX

          public double getPixelScaleX()
        • getPixelScaleY

          public double getPixelScaleY()
        • dispose

          public void dispose()
          Description copied from interface: ICanvas
          Performs all required cleanup when destroying a Canvas.
          Specified by:
          dispose in interface ICanvas
        • forceRepaint

          public void forceRepaint()
          Force repaint and ensure that GL2 rendering will occur in the GUI thread, wherever the caller stands.
          Specified by:
          forceRepaint in interface ICanvas
        • screenshot

          public com.jogamp.opengl.util.texture.TextureData screenshot()
          Description copied from interface: INativeCanvas
          Returns an image with the current renderer's size
          Specified by:
          screenshot in interface ICanvas
          Specified by:
          screenshot in interface INativeCanvas
        • getDrawable

          public com.jogamp.opengl.GLAutoDrawable getDrawable()
          Description copied from interface: INativeCanvas
          Returns the GLDrawable associated with the canvas
          Specified by:
          getDrawable in interface INativeCanvas
        • getView

          public View getView()
          Provide a reference to the View that renders into this canvas.
          Specified by:
          getView in interface ICanvas
        • getRendererWidth

          public int getRendererWidth()
          Provide the actual renderer width for the open gl camera settings, which is obtained after a resize event.
          Specified by:
          getRendererWidth in interface ICanvas
        • getRendererHeight

          public int getRendererHeight()
          Provide the actual renderer height for the open gl camera settings, which is obtained after a resize event.
          Specified by:
          getRendererHeight in interface ICanvas
        • addMouseController

          public void addMouseController​(Object o)
          Description copied from interface: ICanvas
          A generic interface for mouse listener to remain Windowing toolkit independant. Implementation of this method should simply cast the input assuming it will correspond to canvas-compatible mouse listener.
          Specified by:
          addMouseController in interface ICanvas
        • addKeyController

          public void addKeyController​(Object o)
          Description copied from interface: ICanvas
          A generic interface for mouse listener to remain Windowing toolkit independant. Implementation of this method should simply cast the input assuming it will correspond to canvas-compatible mouse listener.
          Specified by:
          addKeyController in interface ICanvas
        • removeMouseController

          public void removeMouseController​(Object o)
          Description copied from interface: ICanvas
          A generic interface for key listener to remain Windowing toolkit independant. Implementation of this method should simply cast the input assuming it will correspond to canvas-compatible key listener.
          Specified by:
          removeMouseController in interface ICanvas
        • removeKeyController

          public void removeKeyController​(Object o)
          Description copied from interface: ICanvas
          A generic interface for key listener to remain Windowing toolkit independant. * Implementation of this method should simply cast the input assuming it will correspond to canvas-compatible key listener.
          Specified by:
          removeKeyController in interface ICanvas
        • firePixelScaleChanged

          protected void firePixelScaleChanged​(double pixelScaleX,
                                               double pixelScaleY)
        • isNative

          public boolean isNative()
          Description copied from interface: ICanvas
          Return true if the canvas renders GL with GPU, false if renders GL using CPU executed Java code.
          Specified by:
          isNative in interface ICanvas