processing.core

## Interface PSurface

- All Known Implementing Classes:
    PSurfaceAWT, PSurfaceFX, PSurfaceJOGL, PSurfaceNone

      public interface PSurface

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `MIN_WINDOW_HEIGHT`
    `static int` | `MIN_WINDOW_WIDTH` Minimum dimensions for the window holding an applet.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `getNative()` Get the native window object associated with this drawing surface.
    `void` | `hideCursor()`
    `void` | `initFrame(PApplet sketch)`
    `void` | `initOffscreen(PApplet sketch)`
    `boolean` | `isStopped()`
    `void` | `pauseThread()` On the next trip through the animation thread, things should go sleepy-bye.
    `void` | `placePresent(int stopColor)`
    `void` | `placeWindow(int[] location, int[] editorLocation)`
    `void` | `resumeThread()`
    `void` | `setAlwaysOnTop(boolean always)` Dumb name, but inherited from Frame and no better ideas.
    `void` | `setCursor(int kind)`
    `void` | `setCursor(PImage image, int hotspotX, int hotspotY)`
    `void` | `setFrameRate(float fps)` Called by `PApplet.createGraphics(int, int)` to initialize the `PGraphics.image` object with an image that's compatible with this drawing surface/display/hardware.
    `void` | `setIcon(PImage icon)`
    `void` | `setLocation(int x, int y)`
    `void` | `setResizable(boolean resizable)` Set true if we want to resize things (default is not resizable)
    `void` | `setSize(int width, int height)`
    `void` | `setTitle(String title)` Set the window (and dock, or whatever necessary) title.
    `void` | `setupExternalMessages()`
    `void` | `setVisible(boolean visible)` Show or hide the window.
    `void` | `showCursor()`
    `void` | `startThread()` Start the animation thread
    `boolean` | `stopThread()` Stop the animation thread (set it null)

- - ### Field Detail

    - #### MIN_WINDOW_WIDTH

          static final int MIN_WINDOW_WIDTH

      Minimum dimensions for the window holding an applet. This varies between platforms, Mac OS X 10.3 (confirmed with 10.7 and Java 6) can do any height but requires at least 128 pixels width. Windows XP has another set of limitations. And for all I know, Linux probably allows window sizes to be negative numbers.
      See Also:
        Constant Field Values

    - #### MIN_WINDOW_HEIGHT

          static final int MIN_WINDOW_HEIGHT

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### initOffscreen

          void initOffscreen(PApplet sketch)

    - #### initFrame

          void initFrame(PApplet sketch)

    - #### getNative

          Object getNative()

      Get the native window object associated with this drawing surface. For Java2D, this will be an AWT Frame object. For OpenGL, the window. The data returned here is subject to the whims of the renderer, and using this method means you're willing to deal with underlying implementation changes and that you won't throw a fit like a toddler if your code breaks sometime in the future.

    - #### setTitle

          void setTitle(String title)

      Set the window (and dock, or whatever necessary) title.

    - #### setVisible

          void setVisible(boolean visible)

      Show or hide the window.

    - #### setResizable

          void setResizable(boolean resizable)

      Set true if we want to resize things (default is not resizable)

    - #### setAlwaysOnTop

          void setAlwaysOnTop(boolean always)

      Dumb name, but inherited from Frame and no better ideas.

    - #### setIcon

          void setIcon(PImage icon)

    - #### placeWindow

          void placeWindow(int[] location,
                           int[] editorLocation)

    - #### placePresent

          void placePresent(int stopColor)

    - #### setupExternalMessages

          void setupExternalMessages()

    - #### setLocation

          void setLocation(int x,
                           int y)

    - #### setSize

          void setSize(int width,
                       int height)

    - #### setFrameRate

          void setFrameRate(float fps)

      Called by `PApplet.createGraphics(int, int)` to initialize the `PGraphics.image` object with an image that's compatible with this drawing surface/display/hardware.
      Parameters:
        `gr` - PGraphics object whose image will be set
        `wide` -
        `high` -

    - #### setCursor

          void setCursor(int kind)

    - #### setCursor

          void setCursor(PImage image,
                         int hotspotX,
                         int hotspotY)

    - #### showCursor

          void showCursor()

    - #### hideCursor

          void hideCursor()

    - #### startThread

          void startThread()

      Start the animation thread

    - #### pauseThread

          void pauseThread()

      On the next trip through the animation thread, things should go sleepy-bye. Does not pause the thread immediately because that needs to happen on the animation thread itself, so fires on the next trip through draw().

    - #### resumeThread

          void resumeThread()

    - #### stopThread

          boolean stopThread()

      Stop the animation thread (set it null)
      Returns:
        false if already stopped

    - #### isStopped

          boolean isStopped()