com.jogamp.newt.impl
Class OffscreenWindow

java.lang.Object
  extended by com.jogamp.newt.impl.WindowImpl
      extended by com.jogamp.newt.impl.OffscreenWindow
All Implemented Interfaces:
NEWTEventConsumer, Window, NativeSurface, NativeWindow, SurfaceChangeable, SurfaceUpdatedListener

public class OffscreenWindow
extends WindowImpl
implements SurfaceChangeable


Nested Class Summary
 
Nested classes/interfaces inherited from class com.jogamp.newt.impl.WindowImpl
WindowImpl.LifecycleHook
 
Nested classes/interfaces inherited from interface com.jogamp.newt.Window
Window.FocusRunnable, Window.ReparentAction
 
Field Summary
 
Fields inherited from class com.jogamp.newt.impl.WindowImpl
capabilitiesChooser, capsRequested, config, DEBUG_TEST_REPARENT_INCOMPATIBLE, fullscreen, hasFocus, height, nfs_height, nfs_width, nfs_x, nfs_y, title, undecorated, visible, width, x, y
 
Fields inherited from interface com.jogamp.newt.Window
DEBUG_IMPLEMENTATION, DEBUG_KEY_EVENT, DEBUG_MOUSE_EVENT, DEBUG_WINDOW_EVENT, TIMEOUT_NATIVEWINDOW
 
Fields inherited from interface javax.media.nativewindow.NativeSurface
LOCK_SUCCESS, LOCK_SURFACE_CHANGED, LOCK_SURFACE_NOT_READY, LOCK_SURFACE_UNLOCKED
 
Constructor Summary
OffscreenWindow()
           
 
Method Summary
protected  void closeNativeImpl()
           
protected  void createNativeImpl()
          The native implementation must set the native windowHandle.
The implementation should invoke the referenced java state callbacks to notify this Java object of state changes.
 void destroy()
          Destroy the Window and it's children, incl.
 Point getLocationOnScreen(Point storage)
          Returns the current absolute location of this window.
protected  Point getLocationOnScreenImpl(int x, int y)
          Return screen coordinates of the given coordinates or null, in which case a NativeWindow traversal shall being used as demonstrated in WindowImpl.getLocationOnScreen(javax.media.nativewindow.util.Point).
 long getSurfaceHandle()
          Returns the handle to the surface for this NativeSurface.
protected  void invalidate(boolean unrecoverable)
           
protected  boolean reconfigureWindowImpl(int x, int y, int width, int height, boolean parentChange, int fullScreenChange, int decorationChange)
          The native implementation should invoke the referenced java state callbacks to notify this Java object of state changes.
protected  void requestFocusImpl(boolean reparented)
          The native implementation must invoke WindowImpl.focusChanged(boolean) to change the focus state, if force == false.
 boolean setFullscreen(boolean fullscreen)
           
 void setPosition(int x, int y)
          Sets the location of the top left corner of the window, including decorations (so the client area will be placed at x+insets.left,y+insets.top.
This call is ignored if in fullscreen mode.
 void setSize(int width, int height)
          Sets the size of the client area of the window, excluding decorations Total size of the window will be width+insets.left+insets.right, height+insets.top+insets.bottom
 void setSurfaceHandle(long handle)
           
protected  void setVisibleImpl(boolean visible, int x, int y, int width, int height)
          The native implementation must invoke WindowImpl.visibleChanged(boolean) to change the visibility state.
 
Methods inherited from class com.jogamp.newt.impl.WindowImpl
addChild, addKeyListener, addKeyListener, addMouseListener, addMouseListener, addSurfaceUpdatedListener, addSurfaceUpdatedListener, addWindowListener, addWindowListener, consumeEvent, consumeKeyEvent, consumeMouseEvent, consumeWindowEvent, create, create, enqueueEvent, enqueueKeyEvent, enqueueMouseEvent, enqueueRequestFocus, enqueueWindowEvent, focusAction, focusChanged, getChosenCapabilities, getDisplayHandle, getGraphicsConfiguration, getHeight, getInsets, getKeyListener, getKeyListeners, getLifecycleHook, getMouseListener, getMouseListeners, getParent, getParentWindowHandle, getRequestedCapabilities, getScreen, getScreenIndex, getSurfaceLockOwner, getSurfaceUpdatedListener, getSurfaceUpdatedListeners, getThreadName, getTitle, getWidth, getWindowHandle, getWindowListener, getWindowListeners, getWindowLockRecursionCount, getWrappedWindow, getX, getY, hasDeviceChanged, hasFocus, init, invalidate, isFullscreen, isNativeValid, isSurfaceLocked, isSurfaceLockedByOtherThread, isUndecorated, isValid, isVisible, lockSurface, lockSurfaceImpl, positionChanged, removeAllSurfaceUpdatedListener, removeChild, removeKeyListener, removeMouseListener, removeSurfaceUpdatedListener, removeWindowListener, reparentWindow, reparentWindow, requestFocus, runOnEDTIfAvail, sendKeyEvent, sendMouseEvent, sendWindowEvent, setCapabilitiesChooser, setFocusAction, setHandleDestroyNotify, setLifecycleHook, setTitle, setTitleImpl, setUndecorated, setVisible, setWindowHandle, shouldNotCallThis, sizeChanged, surfaceSwap, surfaceUpdated, toHexString, toHexString, toString, unlockSurface, unlockSurfaceImpl, visibleChanged, windowDestroyed, windowDestroyNotify, windowRepaint
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OffscreenWindow

public OffscreenWindow()
Method Detail

createNativeImpl

protected void createNativeImpl()
Description copied from class: WindowImpl
The native implementation must set the native windowHandle.
The implementation should invoke the referenced java state callbacks to notify this Java object of state changes.

Specified by:
createNativeImpl in class WindowImpl
See Also:
WindowImpl.windowDestroyNotify(), WindowImpl.focusChanged(boolean), WindowImpl.visibleChanged(boolean), #sizeChanged(int,int), WindowImpl.positionChanged(int,int), WindowImpl.windowDestroyNotify()

closeNativeImpl

protected void closeNativeImpl()
Specified by:
closeNativeImpl in class WindowImpl

invalidate

protected void invalidate(boolean unrecoverable)
Overrides:
invalidate in class WindowImpl
Parameters:
unrecoverable - If true, all states, size, position, parent handles, reference to it's Screen are reset. Otherwise you can recreate the window, via setVisible(true).
See Also:
WindowImpl.invalidate(), WindowImpl.destroy(), #destroy(boolean)

destroy

public void destroy()
Description copied from interface: Window
Destroy the Window and it's children, incl. native destruction.
The Window can be recreate via setVisible(true).

This method invokes Screen.removeReference() after it's own destruction,
which will issue Screen.destroy() if the reference count becomes 0.
This destruction sequence shall end up in Display.destroy(), if all reference counts become 0.

Specified by:
destroy in interface Window
Specified by:
destroy in interface NativeWindow
Overrides:
destroy in class WindowImpl
See Also:
Window.invalidate(), Window.setVisible(boolean)

setSurfaceHandle

public void setSurfaceHandle(long handle)
Specified by:
setSurfaceHandle in interface SurfaceChangeable

getSurfaceHandle

public long getSurfaceHandle()
Description copied from interface: NativeSurface
Returns the handle to the surface for this 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.

Specified by:
getSurfaceHandle in interface NativeSurface
Overrides:
getSurfaceHandle in class WindowImpl

setVisibleImpl

protected void setVisibleImpl(boolean visible,
                              int x,
                              int y,
                              int width,
                              int height)
Description copied from class: WindowImpl
The native implementation must invoke WindowImpl.visibleChanged(boolean) to change the visibility state. This may happen asynchronous within Window.TIMEOUT_NATIVEWINDOW.

Specified by:
setVisibleImpl in class WindowImpl

requestFocusImpl

protected void requestFocusImpl(boolean reparented)
Description copied from class: WindowImpl
The native implementation must invoke WindowImpl.focusChanged(boolean) to change the focus state, if force == false. This may happen asynchronous within Window.TIMEOUT_NATIVEWINDOW.

Specified by:
requestFocusImpl in class WindowImpl
Parameters:
reparented - if true, bypass WindowImpl.focusChanged(boolean) and force focus request

setSize

public void setSize(int width,
                    int height)
Description copied from interface: Window
Sets the size of the client area of the window, excluding decorations Total size of the window will be width+insets.left+insets.right, height+insets.top+insets.bottom

Zero size semantics are respected, see Window.setVisible(boolean):

 if ( 0 != windowHandle && 0>=width*height && visible ) {
 setVisible(false);
 } else if ( 0 == windowHandle && 0

This call is ignored if in fullscreen mode.

Specified by:
setSize in interface Window
Specified by:
setSize in interface SurfaceChangeable
Overrides:
setSize in class WindowImpl
Parameters:
width - of the client area of the window
height - of the client area of the window

setPosition

public void setPosition(int x,
                        int y)
Description copied from interface: Window
Sets the location of the top left corner of the window, including decorations (so the client area will be placed at x+insets.left,y+insets.top.
This call is ignored if in fullscreen mode.

Specified by:
setPosition in interface Window
Overrides:
setPosition in class WindowImpl
Parameters:
x - coord of the top left corner
y - coord of the top left corner

setFullscreen

public boolean setFullscreen(boolean fullscreen)
Specified by:
setFullscreen in interface Window
Overrides:
setFullscreen in class WindowImpl

reconfigureWindowImpl

protected boolean reconfigureWindowImpl(int x,
                                        int y,
                                        int width,
                                        int height,
                                        boolean parentChange,
                                        int fullScreenChange,
                                        int decorationChange)
Description copied from class: WindowImpl
The native implementation should invoke the referenced java state callbacks to notify this Java object of state changes.

Specified by:
reconfigureWindowImpl in class WindowImpl
Parameters:
x - -1 if no position change requested, otherwise greater than zero
y - -1 if no position change requested, otherwise greater than zero
width - -1 if no size change requested, otherwise greater than zero
height - -1 if no size change requested, otherwise greater than zero
parentChange - true if reparenting requested, otherwise false
fullScreenChange - 0 if unchanged, -1 fullscreen off, 1 fullscreen on
decorationChange - 0 if unchanged, -1 undecorated, 1 decorated
See Also:
#sizeChanged(int,int), WindowImpl.positionChanged(int,int)

getLocationOnScreen

public Point getLocationOnScreen(Point storage)
Description copied from interface: NativeWindow
Returns the current absolute location of this window.

Specified by:
getLocationOnScreen in interface NativeWindow
Overrides:
getLocationOnScreen in class WindowImpl
Parameters:
storage - if not null, Point.translate(javax.media.nativewindow.util.Point) the passed Point by this location on the screen and return it.
Returns:
either the passed non null translated point by the screen location of this NativeWindow, or a new instance with the screen location of this NativeWindow.

getLocationOnScreenImpl

protected Point getLocationOnScreenImpl(int x,
                                        int y)
Description copied from class: WindowImpl
Return screen coordinates of the given coordinates or null, in which case a NativeWindow traversal shall being used as demonstrated in WindowImpl.getLocationOnScreen(javax.media.nativewindow.util.Point).

Specified by:
getLocationOnScreenImpl in class WindowImpl
Returns:
if not null, the screen location of the given coordinates


Copyright 2010 JogAmp Community.