Interface AbstractGraphicsDevice
-
- All Superinterfaces:
Cloneable
- All Known Implementing Classes:
AWTGraphicsDevice,DefaultGraphicsDevice,EGLGraphicsDevice,IOSGraphicsDevice,MacOSXGraphicsDevice,WindowsGraphicsDevice,X11GraphicsDevice
public interface AbstractGraphicsDevice extends Cloneable
A interface describing a graphics device in a toolkit-independent manner.
-
-
Field Summary
Fields Modifier and Type Field Description static booleanDEBUGstatic StringDEFAULT_CONNECTIONDummy connection value for a default connection where no native support for multiple devices is availablestatic intDEFAULT_UNITDefault unit id for the 1st device: 0static StringEXTERNAL_CONNECTIONDummy connection value for an external connection where no native support for multiple devices is available
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidclearHandleOwner()Objectclone()booleanclose()Optionally closing the device if handle is notnull.StringgetConnection()Returns the semantic GraphicsDevice connection.
On platforms supporting remote devices, eg via tcp/ip network, the implementation shall return a unique name for each remote address.longgetHandle()Returns the native handle of the underlying native device, if such thing exist.StringgetType()Returns the type of the underlying subsystem, ie NativeWindowFactory.TYPE_KD, NativeWindowFactory.TYPE_X11, ..StringgetUniqueID()intgetUnitID()Returns the graphics deviceunit ID.
Theunit IDsupport multiple graphics device configurations on a local machine.
To support remote device, seegetConnection().booleanisHandleOwner()voidlock()Optionally locking the device, utilizing egToolkitLock.lock().booleanopen()Optionally [re]opening the device if handle isnull.voidunlock()Optionally unlocking the device, utilizing egToolkitLock.unlock().voidvalidateLocked()
-
-
-
Field Detail
-
DEBUG
static final boolean DEBUG
-
DEFAULT_CONNECTION
static final String DEFAULT_CONNECTION
Dummy connection value for a default connection where no native support for multiple devices is available- See Also:
- Constant Field Values
-
EXTERNAL_CONNECTION
static final String EXTERNAL_CONNECTION
Dummy connection value for an external connection where no native support for multiple devices is available- See Also:
- Constant Field Values
-
DEFAULT_UNIT
static final int DEFAULT_UNIT
Default unit id for the 1st device: 0- See Also:
- Constant Field Values
-
-
Method Detail
-
clone
Object clone()
-
getType
String getType()
Returns the type of the underlying subsystem, ie NativeWindowFactory.TYPE_KD, NativeWindowFactory.TYPE_X11, ..
-
getConnection
String getConnection()
Returns the semantic GraphicsDevice connection.
On platforms supporting remote devices, eg via tcp/ip network, the implementation shall return a unique name for each remote address.For
X11GraphicsDevice, the connection string should be as the follows:0.0for a local connectionremote.host.net:0.0for a remote connection
getUnitID().
-
getUnitID
int getUnitID()
Returns the graphics deviceunit ID.
Theunit IDsupport multiple graphics device configurations on a local machine.
To support remote device, seegetConnection().- Returns:
-
getUniqueID
String getUniqueID()
Returns a unique ID object of this device usingtype,connectionandunitIDas it's key components.The unique ID does not reflect the instance of the device, hence the handle is not included. The unique ID may be used as a key for semantic device mapping.
The returned string object reference is unique using
String.intern()and hence can be used as a key itself.
-
getHandle
long getHandle()
Returns the native handle of the underlying native device, if such thing exist.
-
lock
void lock()
Optionally locking the device, utilizing egToolkitLock.lock(). The lock implementation must be recursive.
-
unlock
void unlock()
Optionally unlocking the device, utilizing egToolkitLock.unlock(). The lock implementation must be recursive.- Throws:
RuntimeException- in case the lock is not acquired by this thread.
-
validateLocked
void validateLocked() throws RuntimeException- Throws:
RuntimeException- if current thread does not hold the lock
-
open
boolean open()
Optionally [re]opening the device if handle isnull.The default implementation is a
NOP.Example implementations like
X11GraphicsDeviceorEGLGraphicsDeviceissue the native open operation in case handle isnull.- Returns:
- true if the handle was
nulland opening was successful, otherwise false.
-
close
boolean close()
Optionally closing the device if handle is notnull.The default implementation
disposeit'sToolkitLockand sets the handle tonull.Example implementations like
X11GraphicsDeviceorEGLGraphicsDeviceissue the native close operation or skip it depending on thehandles's ownership.- Returns:
- true if the handle was not
nulland closing was successful, otherwise false.
-
isHandleOwner
boolean isHandleOwner()
- Returns:
trueif instance owns the handle to issueclose(), otherwisefalse.
-
clearHandleOwner
void clearHandleOwner()
-
-