# SharedDrawable (LWJGL API)
Date: 2015-07-28

## org.lwjgl.opengl
Class SharedDrawable

    java.lang.Object
      org.lwjgl.opengl.SharedDrawable

    public final class SharedDrawable

extends java.lang.Object

A Drawable implementation that shares its context with another Drawable. This is useful for background loading of resources. See org.lwjgl.test.opengl.multithread.BackgroundLoad for an example.

Author:
  Spasi

Field Summary
`protected org.lwjgl.opengl.ContextGL` `context` The OpenGL Context.
`protected org.lwjgl.opengl.PeerInfo` `peer_info` Handle to the native GL rendering context
`protected PixelFormat` `pixel_format` The PixelFormat used to create the drawable.

Constructor Summary
`SharedDrawable(Drawable drawable)`

Method Summary
`protected void` `checkDestroyed()`
`void` `checkGLError()`
`org.lwjgl.opengl.ContextGL` `createSharedContext()` [INTERNAL USE ONLY] Creates a new Context that is shared with the Drawable's Context.
`void` `destroy()` Destroys the Drawable.
`org.lwjgl.opengl.ContextGL` `getContext()` [INTERNAL USE ONLY] Returns the Drawable's Context.
`PixelFormatLWJGL` `getPixelFormat()`
`void` `initContext(float r, float g, float b)`
`boolean` `isCurrent()` Returns true if the Drawable's context is current in the current thread.
`void` `makeCurrent()` Makes the Drawable's context current in the current thread.
`void` `releaseContext()` If the Drawable's context is current in the current thread, no context will be current after a call to this method.
`void` `setCLSharingProperties(PointerBuffer properties)` Sets the appropriate khr_gl_sharing properties in the target `PointerBuffer`, so that if it is used in a `clCreateContext(FromType)` call, the created CL context will be sharing objects with this `Drawable`'s GL context.
`void` `setPixelFormat(PixelFormatLWJGL pf)`
`void` `setPixelFormat(PixelFormatLWJGL pf, ContextAttribs attribs)`
`void` `setSwapInterval(int swap_interval)`
`void` `swapBuffers()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### pixel_format

    protected PixelFormat pixel_format

  The PixelFormat used to create the drawable.

### peer_info

    protected org.lwjgl.opengl.PeerInfo peer_info

  Handle to the native GL rendering context

### context

    protected org.lwjgl.opengl.ContextGL context

  The OpenGL Context.

Constructor Detail

### SharedDrawable

    public SharedDrawable(Drawable drawable)
                   throws LWJGLException

Throws:
  `LWJGLException`

Method Detail

### createSharedContext

    public org.lwjgl.opengl.ContextGL createSharedContext()

  [INTERNAL USE ONLY] Creates a new Context that is shared with the Drawable's Context.

  Returns:
    a Context shared with the Drawable's Context.

### setPixelFormat

    public void setPixelFormat(PixelFormatLWJGL pf)
                        throws LWJGLException

  Throws:
    `LWJGLException`

### setPixelFormat

    public void setPixelFormat(PixelFormatLWJGL pf,
                               ContextAttribs attribs)
                        throws LWJGLException

  Throws:
    `LWJGLException`

### getPixelFormat

    public PixelFormatLWJGL getPixelFormat()

### getContext

    public org.lwjgl.opengl.ContextGL getContext()

  [INTERNAL USE ONLY] Returns the Drawable's Context.

  Returns:
    the Drawable's Context

### checkGLError

    public void checkGLError()

### setSwapInterval

    public void setSwapInterval(int swap_interval)

### swapBuffers

    public void swapBuffers()
                     throws LWJGLException

  Throws:
    `LWJGLException`

### initContext

    public void initContext(float r,
                            float g,
                            float b)

### isCurrent

    public boolean isCurrent()
                      throws LWJGLException

  Description copied from interface: `Drawable`
  Returns true if the Drawable's context is current in the current thread.

  Throws:
    `LWJGLException`

### makeCurrent

    public void makeCurrent()
                     throws LWJGLException

  Description copied from interface: `Drawable`
  Makes the Drawable's context current in the current thread.

  Throws:
    `LWJGLException`

### releaseContext

    public void releaseContext()
                        throws LWJGLException

  Description copied from interface: `Drawable`
  If the Drawable's context is current in the current thread, no context will be current after a call to this method.

  Throws:
    `LWJGLException`

### destroy

    public void destroy()

  Description copied from interface: `Drawable`
  Destroys the Drawable.

### setCLSharingProperties

    public void setCLSharingProperties(PointerBuffer properties)
                                throws LWJGLException

  Description copied from interface: `Drawable`
  Sets the appropriate khr_gl_sharing properties in the target `PointerBuffer`, so that if it is used in a `clCreateContext(FromType)` call, the created CL context will be sharing objects with this `Drawable`'s GL context. After a call to this method, the target buffer position will have advanced by 2 to 4 positions, depending on the implementation.

  Parameters:
    `properties` - The target properties buffer. It must have at least 4 positions remaining.
  Throws:
    `LWJGLException`

### checkDestroyed

    protected final void checkDestroyed()

Copyright © 2002-2009 lwjgl.org. All Rights Reserved.