javax.media.nativewindow

## Interface OffscreenLayerSurface

- All Known Implementing Classes:
    JAWTWindow

      public interface OffscreenLayerSurface

  Interface specifying the offscreen layer surface protocol.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `attachSurfaceLayer(long layerHandle)` Attach the offscreen layer to this offscreen layer surface.
    `void` | `detachSurfaceLayer()` Detaches a previously attached offscreen layer from this offscreen layer surface.
    `long` | `getAttachedSurfaceLayer()` Returns the attached surface layer or null if none is attached.
    `RecursiveLock` | `getLock()` Returns the recursive lock object of this surface, which synchronizes multithreaded access.
    `boolean` | `hideCursor()` Optional method hiding the cursor in the corresponding on-screen surface/window, if exists.
    `boolean` | `isSurfaceLayerAttached()` Returns true if a surface layer is attached, otherwise false.
    `void` | `setChosenCapabilities(CapabilitiesImmutable caps)` Sets the capabilities of this instance, allowing upstream API's to refine it, i.e.
    `boolean` | `setCursor(PixelRectangle pixelrect, PointImmutable hotSpot)` Optional method setting cursor in the corresponding on-screen surface/window, if exists.

- - ### Method Detail

    - #### attachSurfaceLayer

          void attachSurfaceLayer(long layerHandle)
                                  throws NativeWindowException

      Attach the offscreen layer to this offscreen layer surface.

      Implementation may realize all required resources at this point.

      Throws:
        `NativeWindowException` - if `#isOffscreenLayerSurfaceEnabled()` == false
      See Also:
        `#isOffscreenLayerSurfaceEnabled()`

    - #### detachSurfaceLayer

          void detachSurfaceLayer()
                                  throws NativeWindowException

      Detaches a previously attached offscreen layer from this offscreen layer surface.
      Throws:
        `NativeWindowException` - if `#isOffscreenLayerSurfaceEnabled()` == false or no surface layer is attached.
      See Also:
        `attachSurfaceLayer(long)`, `#isOffscreenLayerSurfaceEnabled()`

    - #### getAttachedSurfaceLayer

          long getAttachedSurfaceLayer()

      Returns the attached surface layer or null if none is attached.

    - #### isSurfaceLayerAttached

          boolean isSurfaceLayerAttached()

      Returns true if a surface layer is attached, otherwise false.

    - #### setChosenCapabilities

          void setChosenCapabilities(CapabilitiesImmutable caps)

      Sets the capabilities of this instance, allowing upstream API's to refine it, i.e. OpenGL related settings.

    - #### getLock

          RecursiveLock getLock()

      Returns the recursive lock object of this surface, which synchronizes multithreaded access.

    - #### setCursor

          boolean setCursor(PixelRectangle pixelrect,
                          PointImmutable hotSpot)

      Optional method setting cursor in the corresponding on-screen surface/window, if exists.
      Parameters:
        `pixelrect` - cursor pixels, maybe null for default cursor
        `hotSpot` - maybe null for default cursor
      Returns:
        true if successful, i.e. on-screen surface/window w/ cursor capabilities exists. Otherwise false.

    - #### hideCursor

          boolean hideCursor()

      Optional method hiding the cursor in the corresponding on-screen surface/window, if exists.
      Returns:
        true if successful, i.e. on-screen surface/window w/ cursor capabilities exists. Otherwise false.

Copyright 2010 JogAmp Community.