|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.jogamp.nativewindow.awt.JAWTWindow
public abstract class JAWTWindow
| Field Summary |
|---|
| Fields inherited from interface javax.media.nativewindow.NativeSurface |
|---|
LOCK_SUCCESS, LOCK_SURFACE_CHANGED, LOCK_SURFACE_NOT_READY, LOCK_SURFACE_UNLOCKED |
| Method Summary | |
|---|---|
void |
addSurfaceUpdatedListener(int index,
SurfaceUpdatedListener l)
Inserts the given SurfaceUpdatedListener at the
specified position in the list. |
void |
addSurfaceUpdatedListener(SurfaceUpdatedListener l)
Appends the given SurfaceUpdatedListener to the end of the list. |
void |
attachSurfaceLayer(long layerHandle)
Attach the offscreen layer to this offscreen layer surface. |
void |
destroy()
destroys the window and releases windowing related resources. |
void |
detachSurfaceLayer(long layerHandle)
Detaches a previously attached offscreen layer from this offscreen layer surface. |
Component |
getAWTComponent()
|
RectangleImmutable |
getBounds()
|
long |
getDisplayHandle()
Convenience: Get display handle from AbstractGraphicsConfiguration . |
AbstractGraphicsConfiguration |
getGraphicsConfiguration()
Returns the graphics configuration corresponding to this window. |
int |
getHeight()
Returns the height of the client area excluding insets (window decorations). |
InsetsImmutable |
getInsets()
Returns the insets defined as the width and height of the window decoration on the left, right, top and bottom. Insets are zero if the window is undecorated, including child windows. |
jogamp.nativewindow.jawt.JAWT |
getJAWT()
Returns the underlying JAWT instance created @ lockSurface(). |
Point |
getLocationOnScreen(Point storage)
Returns the current position of the top-left corner of the client area in screen coordinates. |
NativeWindow |
getParent()
|
AWTGraphicsConfiguration |
getPrivateGraphicsConfiguration()
|
int |
getScreenIndex()
Convenience: Get display handle from AbstractGraphicsConfiguration . |
boolean |
getShallUseOffscreenLayer()
Returns the property set by OffscreenLayerOption.setShallUseOffscreenLayer(boolean). |
long |
getSurfaceHandle()
Returns the handle to the surface for this NativeSurface. |
Thread |
getSurfaceLockOwner()
Return the locking owner's Thread, or null if not locked. |
int |
getWidth()
Returns the width of the client area excluding insets (window decorations). |
long |
getWindowHandle()
Returns the window handle for this NativeWindow. |
int |
getX()
|
int |
getY()
|
boolean |
hasFocus()
Returns true if this native window owns the focus, otherwise false. |
boolean |
isApplet()
Returns true if the AWT component is parented to an Applet,
otherwise false. |
boolean |
isOffscreenLayerSurfaceEnabled()
Returns true if this instance uses an offscreen layer, otherwise false. |
boolean |
isSurfaceLocked()
Return if surface is locked |
boolean |
isSurfaceLockedByOtherThread()
Return if surface is locked by another thread, ie not the current one |
int |
lockSurface()
Lock the surface of this native window. |
void |
removeSurfaceUpdatedListener(SurfaceUpdatedListener l)
Remove the specified SurfaceUpdatedListener from the list. |
void |
setShallUseOffscreenLayer(boolean v)
Request an offscreen layer, if supported. |
boolean |
surfaceSwap()
Provide a mechanism to utilize custom (pre-) swap surface code. |
void |
surfaceUpdated(Object updater,
NativeSurface ns,
long when)
Notification of a surface update event, eg. |
String |
toString()
|
void |
unlockSurface()
Unlock the surface of this native window Shall not modify the surface handle, see NativeSurface.lockSurface() |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Method Detail |
|---|
public void setShallUseOffscreenLayer(boolean v)
OffscreenLayerOption
Shall be called before the first NativeSurface.lockSurface(),
and hence before realization.
setShallUseOffscreenLayer in interface OffscreenLayerOptionOffscreenLayerOption.getShallUseOffscreenLayer(),
OffscreenLayerOption.isOffscreenLayerSurfaceEnabled()public final boolean getShallUseOffscreenLayer()
OffscreenLayerOptionOffscreenLayerOption.setShallUseOffscreenLayer(boolean).
getShallUseOffscreenLayer in interface OffscreenLayerOptionpublic final boolean isOffscreenLayerSurfaceEnabled()
OffscreenLayerOption
This instance is an offscreen layer, if setShallUseOffscreenLayer(true)
has been called before it's realization and first lock and the underlying implementation supports it.
NativeSurface.lockSurface().
isOffscreenLayerSurfaceEnabled in interface OffscreenLayerOptionOffscreenLayerOption.setShallUseOffscreenLayer(boolean)public final RectangleImmutable getBounds()
public final InsetsImmutable getInsets()
NativeWindow
Insets are available only after the native window has been created,
ie. the native window has been made visible.
The top-level window area's top-left corner is located at
getX() - getInsets().The top-level window size isgetLeftWidth()getY() - getInsets().getTopHeight()
getWidth() + getInsets().getTotalWidth()getHeight() + getInsets().getTotalHeight()
getInsets in interface NativeWindowpublic final Component getAWTComponent()
public final boolean isApplet()
Applet,
otherwise false. This information is valid only after lockSurface().
public final jogamp.nativewindow.jawt.JAWT getJAWT()
lockSurface().
public final void attachSurfaceLayer(long layerHandle)
throws NativeWindowException
attachSurfaceLayer in interface OffscreenLayerSurfaceNativeWindowException - if #isOffscreenLayerSurfaceEnabled() == false#isOffscreenLayerSurfaceEnabled()
public final void detachSurfaceLayer(long layerHandle)
throws NativeWindowException
detachSurfaceLayer in interface OffscreenLayerSurfaceNativeWindowException - if #isOffscreenLayerSurfaceEnabled() == falseOffscreenLayerSurface.attachSurfaceLayer(long),
#isOffscreenLayerSurfaceEnabled()public void addSurfaceUpdatedListener(SurfaceUpdatedListener l)
NativeSurfaceSurfaceUpdatedListener to the end of the list.
addSurfaceUpdatedListener in interface NativeSurface
public void addSurfaceUpdatedListener(int index,
SurfaceUpdatedListener l)
throws IndexOutOfBoundsException
NativeSurfaceSurfaceUpdatedListener at the
specified position in the list.
addSurfaceUpdatedListener in interface NativeSurfaceindex - Position where the listener will be inserted.
Should be within (0 <= index && index <= size()).
An index value of -1 is interpreted as the end of the list, size().l - The listener object to be inserted
IndexOutOfBoundsException - If the index is not within (0 <= index && index <= size()), or -1public void removeSurfaceUpdatedListener(SurfaceUpdatedListener l)
NativeSurfaceSurfaceUpdatedListener from the list.
removeSurfaceUpdatedListener in interface NativeSurface
public void surfaceUpdated(Object updater,
NativeSurface ns,
long when)
SurfaceUpdatedListener
surfaceUpdated in interface SurfaceUpdatedListenerupdater - is the caller object who updated the surface,
e.g. a JOGL GLDrawable.ns - the updated NativeSurfacewhen - the time in ms, when the surface was updated
public final int lockSurface()
throws NativeWindowException
NativeSurface
The surface handle shall be valid after a successfull call,
ie return a value other than NativeSurface.LOCK_SURFACE_UNLOCKED and NativeSurface.LOCK_SURFACE_NOT_READY,
which is
boolean ok = lockSurface() > LOCK_SURFACE_NOT_READY;
The caller may need to take care of the result NativeSurface.LOCK_SURFACE_CHANGED,
where the surface handle is valid but has changed.
This call is blocking until the surface has been locked or a timeout is reached. The latter will throw a runtime exception.
This call allows recursion from the same thread.
The implementation may want to aquire the
application level RecursiveLock
first before proceeding with a native surface lock.
The implementation shall also invoke AbstractGraphicsDevice.lock()
for the initial lock (recursive count zero).
lockSurface in interface NativeSurfaceNativeSurface.LOCK_SUCCESS, NativeSurface.LOCK_SURFACE_CHANGED or NativeSurface.LOCK_SURFACE_NOT_READY.
NativeWindowExceptionRecursiveLockpublic final void unlockSurface()
NativeSurfaceNativeSurface.lockSurface()
The implementation shall also invoke AbstractGraphicsDevice.unlock()
for the final unlock (recursive count zero).
unlockSurface in interface NativeSurfaceNativeSurface.lockSurface(),
RecursiveLockpublic final boolean isSurfaceLockedByOtherThread()
NativeSurface
isSurfaceLockedByOtherThread in interface NativeSurfacepublic final boolean isSurfaceLocked()
NativeSurface
isSurfaceLocked in interface NativeSurfacepublic final Thread getSurfaceLockOwner()
NativeSurface
getSurfaceLockOwner in interface NativeSurfacepublic boolean surfaceSwap()
NativeSurface
surfaceSwap in interface NativeSurfacepublic long getSurfaceHandle()
NativeSurface
The surface handle should be set/update by NativeSurface.lockSurface(),
where NativeSurface.unlockSurface() is not allowed to modify it.
After NativeSurface.unlockSurface() it is no more guaranteed
that the surface handle is still valid.
The surface handle shall reflect the platform one
for all drawable surface operations, e.g. opengl, swap-buffer.
On X11 this returns an entity of type Window,
since there is no differentiation of surface and window there.
On Microsoft Windows this returns an entity of type HDC.
getSurfaceHandle in interface NativeSurfacepublic final AWTGraphicsConfiguration getPrivateGraphicsConfiguration()
public final AbstractGraphicsConfiguration getGraphicsConfiguration()
NativeSurface
In case the implementation utilizes a delegation pattern to wrap abstract toolkits,
this method shall return the native AbstractGraphicsConfiguration via AbstractGraphicsConfiguration.getNativeGraphicsConfiguration().
getGraphicsConfiguration in interface NativeSurfaceAbstractGraphicsConfiguration.getNativeGraphicsConfiguration(),
javax.media.nativewindow.GraphicsConfigurationFactory#chooseGraphicsConfiguration(Capabilities, CapabilitiesChooser, AbstractGraphicsScreen)public final long getDisplayHandle()
NativeSurface
getDisplayHandle in interface NativeSurfacepublic final int getScreenIndex()
NativeSurface
getScreenIndex in interface NativeSurfacepublic int getWidth()
NativeSurface
getWidth in interface NativeSurfacepublic int getHeight()
NativeSurface
getHeight in interface NativeSurfacepublic void destroy()
NativeWindow
destroy in interface NativeWindowpublic final NativeWindow getParent()
getParent in interface NativeWindowpublic long getWindowHandle()
NativeWindowThe window handle shall reflect the platform one for all window related operations, e.g. open, close, resize.
On X11 this returns an entity of type Window.
On Microsoft Windows this returns an entity of type HWND.
getWindowHandle in interface NativeWindowpublic final int getX()
getX in interface NativeWindowNativeWindow.getInsets()public final int getY()
getY in interface NativeWindowNativeWindow.getInsets()public Point getLocationOnScreen(Point storage)
Since the position reflects the client area, it does not include the insets.
This JAWT default implementation is currently still using
a blocking implementation. It first attempts to retrieve the location
via a native implementation. If this fails, it tries the blocking AWT implementation.
If the latter fails due to an external AWT tree-lock, the non block
implementation getLocationOnScreenNonBlocking(Point, Component) is being used.
The latter simply traverse up to the AWT component tree and sums the rel. position.
We have to determine whether the latter is good enough for all cases,
currently only OS X utilizes the non blocking method per default.
getLocationOnScreen in interface NativeWindowstorage - if not null,
Point.translate(javax.media.nativewindow.util.Point)
the passed Point by this location on the screen and return it.
public boolean hasFocus()
NativeWindow
hasFocus in interface NativeWindowpublic String toString()
toString in class Object
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||