diff options
author | Sven Gothel <[email protected]> | 2014-07-27 03:49:21 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2014-07-27 03:49:21 +0200 |
commit | c77b8f586cb2553582a42f5b90aeee5ef85f1efe (patch) | |
tree | 2f304461ff3d87b75f347dd5cf36a580aa73c854 /src/nativewindow | |
parent | 37760af388303834e359703aad9562ce6165845f (diff) |
Bug 1033: Guarantee atomicity of high-level GLAutoDrawable operations, avoiding race conditions.
GLAutoDrawable (API CHANGE) allowing atomic operations:
- Add class API-doc chapter about 'GLAutoDrawable Locking'
- Add method invoke(..) API-doc description about throwing IllegalStateException in case of a detected deadlock situation ahead
(Note: Implemented in GLDrawableHelper.invoke(..) for all implementations)
- Add new methods for proper multithread handling:
- public RecursiveLock getUpstreamLock();
- public boolean isThreadGLCapable();
+++
GLEventListenerState/GLDrawableUtil:
- Perform operation in a atomic fashion,
i.e. lock GLAutoDrawable during whole operations:
- GLDrawableUtil.swapGLContext(..)
- GLDrawableUtil.swapGLContextAndAllGLEventListener(..)
- GLEventListenerState.moveFrom(..)
- GLEventListenerState.moveTo(..)
- ReshapeGLEventListener:
- Moved from GLEventListenerState.ReshapeGLEventListener -> GLDrawableUtil.ReshapeGLEventListener
- Takes 'displayAfterReshape' case into account.
+++
javax.media.opengl.Threading Clarifications:
- Public 'enum Mode', i.e. Threading.Mode
- Public getMode()
- Clarified 'isOpenGLThread()':
- Take 'singleThreaded' into account directly,
i.e. always return 'true' if singleThreaded == false
Diffstat (limited to 'src/nativewindow')
-rw-r--r-- | src/nativewindow/classes/javax/media/nativewindow/NativeSurface.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/nativewindow/classes/javax/media/nativewindow/NativeSurface.java b/src/nativewindow/classes/javax/media/nativewindow/NativeSurface.java index 733f12d49..4d764dc4f 100644 --- a/src/nativewindow/classes/javax/media/nativewindow/NativeSurface.java +++ b/src/nativewindow/classes/javax/media/nativewindow/NativeSurface.java @@ -43,16 +43,16 @@ package javax.media.nativewindow; * </p> */ public interface NativeSurface extends SurfaceUpdatedListener { - /** Unlocked state */ + /** Unlocked state, {@value}. */ public static final int LOCK_SURFACE_UNLOCKED = 0; - /** Returned by {@link #lockSurface()} if the surface is not ready to be locked. */ + /** Returned by {@link #lockSurface()} if the surface is not ready to be locked, {@value}. */ public static final int LOCK_SURFACE_NOT_READY = 1; - /** Returned by {@link #lockSurface()} if the surface is locked, but has changed. */ + /** Returned by {@link #lockSurface()} if the surface is locked, but has changed, {@value}. */ public static final int LOCK_SURFACE_CHANGED = 2; - /** Returned by {@link #lockSurface()} if the surface is locked, and is unchanged. */ + /** Returned by {@link #lockSurface()} if the surface is locked, and is unchanged, {@value}. */ public static final int LOCK_SUCCESS = 3; /** |