Class CanvasAWT

  • All Implemented Interfaces:
    com.jogamp.nativewindow.awt.AWTPrintLifecycle, com.jogamp.nativewindow.NativeSurfaceHolder, com.jogamp.nativewindow.OffscreenLayerOption, 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 CanvasAWT
    extends com.jogamp.opengl.awt.GLCanvas
    implements IScreenCanvas, INativeCanvas
    CanvasAWT is a base implementation that primarily allows to integrate a Jzy3d chart in an AWT application. Relying on JOGL's GLPanel, this canvas can actually be used in AWT, Swing, as well as SWT through org.jzy3d.bridge.swt.Bridge.adapt(swt,awt).
    Author:
    Martin Pernollet
    See Also:
    Serialized Form
    • Method Detail

      • watchPixelScale

        protected void watchPixelScale()
      • newPixelScaleIdentity

        protected float[] newPixelScaleIdentity()
      • 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
        • setPixelScale

          public void setPixelScale​(Coord2d scale)
        • 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()
        • resetPixelScale

          protected void resetPixelScale()
          Reset pixel scale to (1,1)
        • firePixelScaleChanged

          protected void firePixelScaleChanged​(double pixelScaleX,
                                               double pixelScaleY)
        • 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()
          Description copied from interface: ICanvas
          Invoked when a user requires the Canvas to be repainted (e.g. a non 3d layer has changed).
          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
        • triggerMouseEvent

          public void triggerMouseEvent​(MouseEvent e)
        • triggerMouseMotionEvent

          public void triggerMouseMotionEvent​(MouseEvent e)
        • triggerMouseWheelEvent

          public void triggerMouseWheelEvent​(MouseWheelEvent e)
        • 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
        • 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
        • 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