Class CanvasNewtSWT

  • All Implemented Interfaces:
    org.eclipse.swt.graphics.Drawable, ICanvas, INativeCanvas, IScreenCanvas

    public class CanvasNewtSWT
    extends org.eclipse.swt.widgets.Composite
    implements IScreenCanvas, INativeCanvas
    A Newt canvas wrapped in an AWT Newt is supposed to be faster than any other canvas, either for AWT or Swing. If a non AWT panel where required, follow the guidelines given in IScreenCanvas documentation.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addCanvasListener​(ICanvasListener listener)  
      void addKeyController​(Object o)
      A generic interface for mouse listener to remain Windowing toolkit independant.
      void addKeyListener​(com.jogamp.newt.event.KeyListener l)  
      void addMouseController​(Object o)
      A generic interface for mouse listener to remain Windowing toolkit independant.
      void addMouseListener​(com.jogamp.newt.event.MouseListener l)  
      void display()  
      protected void firePixelScaleChanged​(double pixelScaleX, double pixelScaleY)  
      void forceRepaint()
      Invoked when a user requires the Canvas to be repainted (e.g. a non 3d layer has changed).
      IAnimator getAnimation()  
      com.jogamp.newt.swt.NewtCanvasSWT getCanvas()  
      List<ICanvasListener> getCanvasListeners()  
      String getDebugInfo()  
      com.jogamp.opengl.GLAutoDrawable getDrawable()
      Returns the GLDrawable associated with the canvas
      double getLastRenderingTimeMs()  
      Coord2d getPixelScale()
      Pixel scale is used to model the pixel ratio thay may be introduced by HiDPI or Retina displays.
      double getPixelScaleX()  
      double getPixelScaleY()  
      Renderer3d getRenderer()  
      int getRendererHeight()
      Provide the actual renderer height for the open gl camera settings, which is obtained after a resize event.
      int getRendererWidth()
      Provide the actual renderer width for the open gl camera settings, which is obtained after a resize event.
      View getView()
      Provide a reference to the View that renders into this canvas.
      com.jogamp.newt.opengl.GLWindow getWindow()  
      void removeCanvasListener​(ICanvasListener listener)  
      void removeKeyController​(Object o)
      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.
      void removeKeyListener​(com.jogamp.newt.event.KeyListener l)  
      void removeMouseController​(Object o)
      A generic interface for key listener to remain Windowing toolkit independant.
      void removeMouseListener​(com.jogamp.newt.event.MouseListener l)  
      com.jogamp.opengl.util.texture.TextureData screenshot()
      Returns an image with the current renderer's size
      void screenshot​(File file)  
      void setPixelScale​(float[] scale)
      Defines pixel scale.
      protected void watchPixelScale()  
      • Methods inherited from class org.eclipse.swt.widgets.Composite

        changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayout, setLayoutDeferred, setTabList
      • Methods inherited from class org.eclipse.swt.widgets.Scrollable

        computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar
      • Methods inherited from class org.eclipse.swt.widgets.Control

        addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isAutoScalable, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackground, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setEnabled, setFont, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setToolTipText, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update
      • Methods inherited from class org.eclipse.swt.widgets.Widget

        addDisposeListener, addListener, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString
      • Methods inherited from interface org.jzy3d.plot3d.rendering.canvas.ICanvas

        dispose
    • Constructor Detail

      • CanvasNewtSWT

        public CanvasNewtSWT​(IChartFactory factory,
                             Scene scene,
                             Quality quality,
                             com.jogamp.opengl.GLCapabilitiesImmutable glci)
      • CanvasNewtSWT

        public CanvasNewtSWT​(IChartFactory factory,
                             Scene scene,
                             Quality quality,
                             com.jogamp.opengl.GLCapabilitiesImmutable glci,
                             boolean traceGL,
                             boolean debugGL)
    • 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
        • getPixelScaleX

          public double getPixelScaleX()
        • getPixelScaleY

          public double getPixelScaleY()
        • getWindow

          public com.jogamp.newt.opengl.GLWindow getWindow()
        • getCanvas

          public com.jogamp.newt.swt.NewtCanvasSWT getCanvas()
        • 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
        • 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
        • 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
        • getView

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

          public void addKeyListener​(com.jogamp.newt.event.KeyListener l)
        • addMouseListener

          public void addMouseListener​(com.jogamp.newt.event.MouseListener l)
        • removeMouseListener

          public void removeMouseListener​(com.jogamp.newt.event.MouseListener l)
        • removeKeyListener

          public void removeKeyListener​(com.jogamp.newt.event.KeyListener l)
        • 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)