public abstract class NativeWindowFactory extends Object
NativeWindow
interface,
which provides a platform-independent mechanism of accessing the
information required to perform operations like
hardware-accelerated rendering using the OpenGL API.Modifier and Type | Field and Description |
---|---|
static String |
TYPE_ANDROID
Android/EGL type, as retrieved with
getNativeWindowType(boolean) |
static String |
TYPE_AWT
Generic AWT type, as retrieved with
getNativeWindowType(boolean) |
static String |
TYPE_DEFAULT
Generic DEFAULT type, where platform implementation don't care, as retrieved with
getNativeWindowType(boolean) |
static String |
TYPE_EGL
OpenKODE/EGL type, as retrieved with
getNativeWindowType(boolean) |
static String |
TYPE_MACOSX
Mac OS X type, as retrieved with
getNativeWindowType(boolean) |
static String |
TYPE_WINDOWS
Microsoft Windows type, as retrieved with
getNativeWindowType(boolean) |
static String |
TYPE_X11
X11 type, as retrieved with
getNativeWindowType(boolean) |
static String |
X11JAWTToolkitLockClassName |
static String |
X11ToolkitLockClassName |
Modifier and Type | Method and Description |
---|---|
static ToolkitLock |
createDefaultToolkitLock(String type,
long deviceHandle)
|
static ToolkitLock |
createDefaultToolkitLock(String type,
String sharedType,
long deviceHandle)
|
static ToolkitLock |
getAWTToolkitLock()
Returns the AWT Toolkit (JAWT based) if
isAWTAvailable , otherwise null. |
static NativeWindowFactory |
getDefaultFactory()
Gets the default NativeWindowFactory.
|
static ToolkitLock |
getDefaultToolkitLock()
Provides the system default
ToolkitLock , a singleton instance. |
static ToolkitLock |
getDefaultToolkitLock(String type)
Provides the default
ToolkitLock for type , a singleton instance. |
static NativeWindowFactory |
getFactory(Class<?> windowClass)
Returns the appropriate NativeWindowFactory to handle window
objects of the given type.
|
static NativeWindow |
getNativeWindow(Object winObj,
AbstractGraphicsConfiguration config)
Converts the given window object and it's
AbstractGraphicsConfiguration into a
NativeWindow which can be operated upon by a custom
toolkit, e.g. |
static String |
getNativeWindowType(boolean useCustom) |
static ToolkitLock |
getNullToolkitLock() |
static OffscreenLayerSurface |
getOffscreenLayerSurface(NativeSurface surface,
boolean ifEnabled)
Returns the
OffscreenLayerSurface instance of this NativeSurface . |
static void |
initSingleton(boolean firstUIActionOnProcess)
Static one time initialization of this factory.
This initialization method must be called once by the program or utilizing modules! |
static boolean |
isAWTAvailable() |
static boolean |
isFirstUIActionOnProcess() |
static boolean |
isNativeVisualIDValidForProcessing(int visualID)
Returns true if the given visualID is valid for further processing, i.e.
|
static boolean |
requiresToolkitLock() |
static void |
setDefaultFactory(NativeWindowFactory factory)
Sets the default NativeWindowFactory.
|
static void |
shutdown() |
public static final String TYPE_EGL
getNativeWindowType(boolean)
public static final String TYPE_WINDOWS
getNativeWindowType(boolean)
public static final String TYPE_X11
getNativeWindowType(boolean)
public static final String TYPE_ANDROID
getNativeWindowType(boolean)
public static final String TYPE_MACOSX
getNativeWindowType(boolean)
public static final String TYPE_AWT
getNativeWindowType(boolean)
public static final String TYPE_DEFAULT
getNativeWindowType(boolean)
public static final String X11JAWTToolkitLockClassName
public static final String X11ToolkitLockClassName
public static void initSingleton(boolean firstUIActionOnProcess)
The parameter firstUIActionOnProcess
has an impact on concurrent locking:
getDefaultToolkitLock()
getDefaultToolkitLock(type)
createDefaultToolkitLock(type, dpyHandle)
createDefaultToolkitLockNoAWT(type, dpyHandle)
firstUIActionOnProcess
- Should be true
if called before the first UI action of the running program,
otherwise false
.public static void shutdown()
public static boolean isFirstUIActionOnProcess()
initSingleton(firstUIActionOnProcess==true)
,
otherwise false.public static boolean requiresToolkitLock()
public static boolean isAWTAvailable()
public static String getNativeWindowType(boolean useCustom)
useCustom
- if false return the native value, if true return a custom value if set, otherwise fallback to the native value.TYPE_X11
, ..public static void setDefaultFactory(NativeWindowFactory factory)
public static NativeWindowFactory getDefaultFactory()
public static ToolkitLock getDefaultToolkitLock()
ToolkitLock
, a singleton instance.
public static ToolkitLock getDefaultToolkitLock(String type)
ToolkitLock
for type
, a singleton instance.
initSingleton( firstUIActionOnProcess := false )
getAWTToolkitLock()
getNullToolkitLock()
public static ToolkitLock getAWTToolkitLock()
isAWTAvailable
, otherwise null.public static ToolkitLock getNullToolkitLock()
public static ToolkitLock createDefaultToolkitLock(String type, long deviceHandle)
ToolkitLock
for type
and deviceHandle
.
initSingleton( firstUIActionOnProcess := false )
X11ToolkitLock
NullToolkitLock
public static ToolkitLock createDefaultToolkitLock(String type, String sharedType, long deviceHandle)
ToolkitLock
for type
and deviceHandle
.
initSingleton( firstUIActionOnProcess := false )
jogamp.nativewindow.jawt.x11.X11JAWTToolkitLock
X11ToolkitLock
NullToolkitLock
public static NativeWindowFactory getFactory(Class<?> windowClass) throws IllegalArgumentException
NativeWindow
, in which case the client has
already assumed the responsibility of creating a compatible
NativeWindow implementation, or it might be that of a toolkit
class like Component
.IllegalArgumentException
public static NativeWindow getNativeWindow(Object winObj, AbstractGraphicsConfiguration config) throws IllegalArgumentException, NativeWindowException
AbstractGraphicsConfiguration
into a
NativeWindow
which can be operated upon by a custom
toolkit, e.g. javax.media.opengl.GLDrawableFactory
.GraphicsConfigurationFactory
to construct a proper AbstractGraphicsConfiguration
.IllegalArgumentException
- if the given window object
could not be handled by any of the registered
NativeWindowFactory instancesNativeWindowException
javax.media.nativewindow.GraphicsConfigurationFactory#chooseGraphicsConfiguration(Capabilities, CapabilitiesChooser, AbstractGraphicsScreen)
public static OffscreenLayerSurface getOffscreenLayerSurface(NativeSurface surface, boolean ifEnabled)
OffscreenLayerSurface
instance of this NativeSurface
.
In case this surface is a NativeWindow
, we traverse from the given surface
up to root until an implementation of OffscreenLayerSurface
is found.
In case ifEnabled
is true, the surface must also implement OffscreenLayerOption
where OffscreenLayerOption.isOffscreenLayerSurfaceEnabled()
is true
.
surface
- The surface to query.ifEnabled
- If true, only return the enabled OffscreenLayerSurface
, see OffscreenLayerOption.isOffscreenLayerSurfaceEnabled()
.public static boolean isNativeVisualIDValidForProcessing(int visualID)
On certain platforms, i.e. X11, a valid visualID is required at window creation. Other platforms may determine it later on, e.g. OSX and Windows.
If the visualID is VisualIDHolder.VID_UNDEFINED
and the platform requires it
at creation time (see above), it is not valid for further processing.
Copyright 2010 JogAmp Community.