Creates a
GLDrawable#isRealized()
GLOffscreenAutoDrawableincl it's offscreen
NativeSurface with the given capabilites and dimensions.
The
GLOffscreenAutoDrawable's
GLDrawable is
GLDrawable#isRealized()without an assigned
GLContext, hence not initialized completely.
The
GLContext can be assigned later manually via
GLAutoDrawable#setContext(GLContext,boolean)or it will be created lazily at the 1st
GLAutoDrawable#display() method call.
Lazy
GLContext creation will take a shared
GLContext into account
which has been set
GLOffscreenAutoDrawable#setSharedContext(GLContext)or
GLOffscreenAutoDrawable#setSharedAutoDrawable(GLAutoDrawable).
In case the passed
GLCapabilitiesImmutable contains default values, i.e.
GLCapabilitiesImmutable#isOnscreen() == true
,
it is auto-configured. Auto configuration will set
GLCapabilitiesImmutable to offscreen
and FBO or Pbuffer, whichever is available in that order.
A FBO based auto drawable,
GLOffscreenAutoDrawable.FBO, is created if both
GLCapabilitiesImmutable#isFBO()and
GLContext#isFBOAvailable(AbstractGraphicsDevice,GLProfile) is true.
A Pbuffer based auto drawable is created if both
GLCapabilitiesImmutable#isPBuffer()and
#canCreateGLPbuffer(AbstractGraphicsDevice,GLProfile) is true.
If neither FBO nor Pbuffer is available,
a simple pixmap/bitmap auto drawable is created, which is unlikely to be hardware accelerated.
The resulting
GLOffscreenAutoDrawable has it's own independent device instance using device
details.