Package org.jzy3d.chart.factories
Class CanvasNewtSWT
java.lang.Object
org.eclipse.swt.widgets.Widget
org.eclipse.swt.widgets.Control
org.eclipse.swt.widgets.Scrollable
org.eclipse.swt.widgets.Composite
org.jzy3d.chart.factories.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.-
Field Summary
Modifier and TypeFieldDescriptionprotected IAnimator
protected com.jogamp.newt.swt.NewtCanvasSWT
protected List<ICanvasListener>
protected ScheduledExecutorService
protected Renderer3d
protected View
protected com.jogamp.newt.opengl.GLWindow
Fields inherited from interface org.jzy3d.plot3d.rendering.canvas.ICanvas
ALLOW_WATCH_PIXEL_SCALE, LAST_RENDER_TIME_UNDEFINED
-
Constructor Summary
ConstructorDescriptionCanvasNewtSWT
(IChartFactory factory, Scene scene, Quality quality, com.jogamp.opengl.GLCapabilitiesImmutable glci) CanvasNewtSWT
(IChartFactory factory, Scene scene, Quality quality, com.jogamp.opengl.GLCapabilitiesImmutable glci, boolean traceGL, boolean debugGL) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addCanvasListener
(ICanvasListener listener) void
A generic interface for mouse listener to remain Windowing toolkit independant.void
addKeyListener
(com.jogamp.newt.event.KeyListener l) void
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
Invoked when a user requires the Canvas to be repainted (e.g. a non 3d layer has changed).com.jogamp.newt.swt.NewtCanvasSWT
com.jogamp.opengl.GLAutoDrawable
Returns the GLDrawable associated with the canvasdouble
Pixel scale is used to model the pixel ratio thay may be introduced by HiDPI or Retina displays.Provide pixel scale as considered feasible by the JVM.double
double
int
Provide the actual renderer height for the open gl camera settings, which is obtained after a resize event.int
Provide the actual renderer width for the open gl camera settings, which is obtained after a resize event.getView()
Provide a reference to the View that renders into this canvas.com.jogamp.newt.opengl.GLWindow
boolean
isNative()
Return true if the canvas renders GL with GPU, false if renders GL using CPU executed Java code.void
removeCanvasListener
(ICanvasListener listener) void
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
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
Returns an image with the current renderer's sizevoid
screenshot
(File file) void
setPixelScale
(float[] scale) Defines pixel scale.protected void
Methods inherited from class org.eclipse.swt.widgets.Composite
changed, checkSubclass, computeSize, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, redraw, 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, 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, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, 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 class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.swt.graphics.Drawable
isAutoScalable
Methods inherited from interface org.jzy3d.plot3d.rendering.canvas.ICanvas
dispose, setPixelScale
-
Field Details
-
view
-
renderer
-
animator
-
window
protected com.jogamp.newt.opengl.GLWindow window -
canvas
protected com.jogamp.newt.swt.NewtCanvasSWT canvas -
canvasListeners
-
exec
-
-
Constructor Details
-
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 Details
-
watchPixelScale
protected void watchPixelScale() -
getLastRenderingTimeMs
public double getLastRenderingTimeMs()- Specified by:
getLastRenderingTimeMs
in interfaceICanvas
-
getAnimation
- Specified by:
getAnimation
in interfaceIScreenCanvas
-
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 asCamera.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 interfaceICanvas
-
getPixelScale
Pixel scale is used to model the pixel ratio thay may be introduced by HiDPI or Retina displays.- Specified by:
getPixelScale
in interfaceICanvas
-
getPixelScaleJVM
Description copied from interface:ICanvas
Provide pixel scale as considered feasible by the JVM.- Specified by:
getPixelScaleJVM
in interfaceICanvas
-
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 interfaceINativeCanvas
-
display
public void display()- Specified by:
display
in interfaceIScreenCanvas
-
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 interfaceICanvas
-
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 interfaceICanvas
- Specified by:
screenshot
in interfaceINativeCanvas
-
screenshot
- Specified by:
screenshot
in interfaceICanvas
- Throws:
IOException
-
getDebugInfo
- Specified by:
getDebugInfo
in interfaceICanvas
-
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 interfaceICanvas
-
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 interfaceICanvas
-
getDimension
- Specified by:
getDimension
in interfaceICanvas
-
getRenderer
- Specified by:
getRenderer
in interfaceINativeCanvas
-
getView
Provide a reference to the View that renders into this canvas. -
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
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 interfaceICanvas
-
addKeyController
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 interfaceICanvas
-
removeMouseController
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 interfaceICanvas
-
removeKeyController
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 interfaceICanvas
-
addCanvasListener
- Specified by:
addCanvasListener
in interfaceICanvas
-
removeCanvasListener
- Specified by:
removeCanvasListener
in interfaceICanvas
-
getCanvasListeners
- Specified by:
getCanvasListeners
in interfaceICanvas
-
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.
-