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
FieldsModifier and TypeFieldDescriptionprotected IAnimatorprotected com.jogamp.newt.swt.NewtCanvasSWTprotected List<ICanvasListener>protected ScheduledExecutorServiceprotected Renderer3dprotected Viewprotected com.jogamp.newt.opengl.GLWindowFields inherited from interface org.jzy3d.plot3d.rendering.canvas.ICanvas
ALLOW_WATCH_PIXEL_SCALE, LAST_RENDER_TIME_UNDEFINED -
Constructor Summary
ConstructorsConstructorDescriptionCanvasNewtSWT(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 TypeMethodDescriptionvoidaddCanvasListener(ICanvasListener listener) voidA generic interface for mouse listener to remain Windowing toolkit independant.voidaddKeyListener(com.jogamp.newt.event.KeyListener l) voidA generic interface for mouse listener to remain Windowing toolkit independant.voidaddMouseListener(com.jogamp.newt.event.MouseListener l) voiddisplay()protected voidfirePixelScaleChanged(double pixelScaleX, double pixelScaleY) voidInvoked when a user requires the Canvas to be repainted (e.g. a non 3d layer has changed).com.jogamp.newt.swt.NewtCanvasSWTcom.jogamp.opengl.GLAutoDrawableReturns the GLDrawable associated with the canvasdoublePixel 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.doubledoubleintProvide the actual renderer height for the open gl camera settings, which is obtained after a resize event.intProvide 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.GLWindowbooleanisNative()Return true if the canvas renders GL with GPU, false if renders GL using CPU executed Java code.voidremoveCanvasListener(ICanvasListener listener) voidA 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.voidremoveKeyListener(com.jogamp.newt.event.KeyListener l) voidA generic interface for key listener to remain Windowing toolkit independant.voidremoveMouseListener(com.jogamp.newt.event.MouseListener l) com.jogamp.opengl.util.texture.TextureDataReturns an image with the current renderer's sizevoidscreenshot(File file) voidsetPixelScale(float[] scale) Defines pixel scale.protected voidMethods 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, setTabListMethods inherited from class org.eclipse.swt.widgets.Scrollable
computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBarMethods 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, updateMethods 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, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.swt.graphics.Drawable
isAutoScalableMethods 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:
getLastRenderingTimeMsin interfaceICanvas
-
getAnimation
- Specified by:
getAnimationin interfaceIScreenCanvas
-
setPixelScale
public void setPixelScale(float[] scale) Description copied from interface:ICanvasDefines 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:
setPixelScalein interfaceICanvas
-
getPixelScale
Pixel scale is used to model the pixel ratio thay may be introduced by HiDPI or Retina displays.- Specified by:
getPixelScalein interfaceICanvas
-
getPixelScaleJVM
Description copied from interface:ICanvasProvide pixel scale as considered feasible by the JVM.- Specified by:
getPixelScaleJVMin 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:INativeCanvasReturns the GLDrawable associated with the canvas- Specified by:
getDrawablein interfaceINativeCanvas
-
display
public void display()- Specified by:
displayin interfaceIScreenCanvas
-
forceRepaint
public void forceRepaint()Description copied from interface:ICanvasInvoked when a user requires the Canvas to be repainted (e.g. a non 3d layer has changed).- Specified by:
forceRepaintin interfaceICanvas
-
screenshot
public com.jogamp.opengl.util.texture.TextureData screenshot()Description copied from interface:INativeCanvasReturns an image with the current renderer's size- Specified by:
screenshotin interfaceICanvas- Specified by:
screenshotin interfaceINativeCanvas
-
screenshot
- Specified by:
screenshotin interfaceICanvas- Throws:
IOException
-
getDebugInfo
- Specified by:
getDebugInfoin 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:
getRendererWidthin 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:
getRendererHeightin interfaceICanvas
-
getDimension
- Specified by:
getDimensionin interfaceICanvas
-
getRenderer
- Specified by:
getRendererin 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:ICanvasA 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:
addMouseControllerin interfaceICanvas
-
addKeyController
Description copied from interface:ICanvasA 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:
addKeyControllerin interfaceICanvas
-
removeMouseController
Description copied from interface:ICanvasA 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:
removeMouseControllerin interfaceICanvas
-
removeKeyController
Description copied from interface:ICanvasA 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:
removeKeyControllerin interfaceICanvas
-
addCanvasListener
- Specified by:
addCanvasListenerin interfaceICanvas
-
removeCanvasListener
- Specified by:
removeCanvasListenerin interfaceICanvas
-
getCanvasListeners
- Specified by:
getCanvasListenersin interfaceICanvas
-
firePixelScaleChanged
protected void firePixelScaleChanged(double pixelScaleX, double pixelScaleY) -
isNative
public boolean isNative()Description copied from interface:ICanvasReturn true if the canvas renders GL with GPU, false if renders GL using CPU executed Java code.
-