public interface AbstractGraphicsDevice extends Cloneable
Modifier and Type | Field and Description |
---|---|
static boolean |
DEBUG |
static String |
DEFAULT_CONNECTION
Dummy connection value for a default connection where no native support for multiple devices is available
|
static int |
DEFAULT_UNIT
Default unit id for the 1st device: 0
|
static String |
EXTERNAL_CONNECTION
Dummy connection value for an external connection where no native support for multiple devices is available
|
Modifier and Type | Method and Description |
---|---|
void |
clearHandleOwner() |
Object |
clone() |
boolean |
close()
Optionally closing the device if handle is not
null . |
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. On X11 for example, the connection string should be as the following example. :0.0 for a local connection
remote.host.net:0.0 for a remote connection
To support multiple local device, see getUnitID() . |
long |
getHandle()
Returns the native handle of the underlying native device,
if such thing exist.
|
String |
getType()
Returns the type of the underlying subsystem, ie
NativeWindowFactory.TYPE_KD, NativeWindowFactory.TYPE_X11, ..
|
String |
getUniqueID()
|
int |
getUnitID()
Returns the graphics device
unit ID .The unit ID support multiple graphics device configurations
on a local machine.To support remote device, see getConnection() . |
boolean |
isHandleOwner() |
void |
lock()
Optionally locking the device, utilizing eg
ToolkitLock.lock() . |
boolean |
open()
Optionally [re]opening the device if handle is
null . |
void |
unlock()
Optionally unlocking the device, utilizing eg
ToolkitLock.unlock() . |
void |
validateLocked() |
static final boolean DEBUG
static final String DEFAULT_CONNECTION
static final String EXTERNAL_CONNECTION
static final int DEFAULT_UNIT
Object clone()
String getType()
String getConnection()
:0.0
for a local connectionremote.host.net:0.0
for a remote connectiongetUnitID()
.int getUnitID()
unit ID
.unit ID
support multiple graphics device configurations
on a local machine.getConnection()
.String getUniqueID()
type
,
connection
and unitID
as 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.
long getHandle()
void lock()
ToolkitLock.lock()
.
The lock implementation must be recursive.void unlock()
ToolkitLock.unlock()
.
The lock implementation must be recursive.RuntimeException
- in case the lock is not acquired by this thread.void validateLocked() throws RuntimeException
RuntimeException
- if current thread does not hold the lockboolean open()
null
.
The default implementation is a NOP
.
Example implementations like X11GraphicsDevice
or com.jogamp.nativewindow.egl.EGLGraphicsDevice
issue the native open operation in case handle is null
.
null
and opening was successful, otherwise false.boolean close()
null
.
The default implementation dispose
it's ToolkitLock
and sets the handle to null
.
Example implementations like X11GraphicsDevice
or com.jogamp.nativewindow.egl.EGLGraphicsDevice
issue the native close operation or skip it depending on the handles's ownership
.
null
and closing was successful, otherwise false.boolean isHandleOwner()
true
if instance owns the handle to issue close()
, otherwise false
.void clearHandleOwner()
Copyright 2010 JogAmp Community.