Class OffscreenCanvas

java.lang.Object
org.jzy3d.plot3d.rendering.canvas.OffscreenCanvas
All Implemented Interfaces:
ICanvas, INativeCanvas

public class OffscreenCanvas extends Object implements ICanvas, INativeCanvas
An ICanvas implementation able to render the chart in an offscreen canvas, meaning no frame or GUI is needed to get a chart. Subsequently, one will wish to generate chart images by calling:

chart.screenshot();

Note that the GLCapabilities are modified while an instance of OffscreenCanvas is modified.
Author:
Nils Hoffman, Martin Pernollet
  • Field Details

    • view

      protected View view
    • renderer

      protected Renderer3d renderer
    • offscreenDrawable

      protected com.jogamp.opengl.GLOffscreenAutoDrawable offscreenDrawable
    • capabilities

      protected com.jogamp.opengl.GLCapabilities capabilities
    • canvasListeners

      protected List<ICanvasListener> canvasListeners
  • Constructor Details

    • OffscreenCanvas

      public OffscreenCanvas(IChartFactory factory, Scene scene, Quality quality, com.jogamp.opengl.GLCapabilities capabilities, int width, int height)
  • Method Details

    • initBuffer

      public void initBuffer(com.jogamp.opengl.GLCapabilities capabilities, int width, int height)
      Initialize a GLOffscreenAutoDrawable to the desired dimensions Might be a GLPixelBuffer or GLFBODrawable depending on the provided GLCapabilities (
      invalid @link
      {@link GLCapabilities#setPBuffer(true)
      } to enable PBuffer). Can be called several time to reset buffer dimensions.
      Parameters:
      capabilities - with a setOnscreen flag set to true, otherwise forced to true.
      width - image width
      height - image width
    • resize

      public void resize(int width, int height)
    • getCapabilities

      public com.jogamp.opengl.GLCapabilities getCapabilities()
    • getLastRenderingTimeMs

      public double getLastRenderingTimeMs()
      Specified by:
      getLastRenderingTimeMs in interface ICanvas
    • setPixelScale

      public void setPixelScale(float[] scale)
      Specified by:
      setPixelScale in interface ICanvas
    • getPixelScale

      public Coord2d getPixelScale()
      Specified by:
      getPixelScale in interface ICanvas
    • getPixelScaleJVM

      public Coord2d getPixelScaleJVM()
      Specified by:
      getPixelScaleJVM in interface ICanvas
    • getDrawable

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

      public void dispose()
      Specified by:
      dispose in interface ICanvas
    • forceRepaint

      public void forceRepaint()
      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
    • screenshot

      public void screenshot(File file) throws IOException
      Specified by:
      screenshot in interface ICanvas
      Throws:
      IOException
    • 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()
      Specified by:
      getRendererWidth in interface ICanvas
    • getRendererHeight

      public int getRendererHeight()
      Specified by:
      getRendererHeight in interface ICanvas
    • getRenderer

      public Renderer3d getRenderer()
      Specified by:
      getRenderer in interface INativeCanvas
    • getDimension

      public Dimension getDimension()
      Specified by:
      getDimension in interface ICanvas
    • getDebugInfo

      public String getDebugInfo()
      Specified by:
      getDebugInfo in interface ICanvas
    • addMouseController

      public void addMouseController(Object o)
      Specified by:
      addMouseController in interface ICanvas
    • addKeyController

      public void addKeyController(Object o)
      Specified by:
      addKeyController in interface ICanvas
    • removeMouseController

      public void removeMouseController(Object o)
      Specified by:
      removeMouseController in interface ICanvas
    • removeKeyController

      public void removeKeyController(Object o)
      Specified by:
      removeKeyController in interface ICanvas
    • addCanvasListener

      public void addCanvasListener(ICanvasListener listener)
      Specified by:
      addCanvasListener in interface ICanvas
    • removeCanvasListener

      public void removeCanvasListener(ICanvasListener listener)
      Specified by:
      removeCanvasListener in interface ICanvas
    • getCanvasListeners

      public List<ICanvasListener> getCanvasListeners()
      Specified by:
      getCanvasListeners in interface ICanvas
    • firePixelScaleChanged

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

      public boolean isNative()
      Specified by:
      isNative in interface ICanvas