| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
before ctx release.
|
|
|
|
| |
hdc/hwnd dump.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is the default.
The following 5 GDI functions have their 'wgl' counterparts
which 'shall' being used in case the OpenGL DLL is being loaded dynamically.
(So reads the documentation & FAQ).
This seems to be required only in case the std. opengl32.dll is not being used.
This use case is called GDI/ICD.
If using a non std. OpenGL DLL, is called MCD.
We dynamically load the OpenGL DLL and fetch the address pointer.
Since we generally use the std. opengl32.dll, our use of the GDI callbacks
seems to be legal. However, to test using the 'wgl' method WGLUtil is introduced.
You can test using the 'wgl' variants
by defining the property: 'jogl.windows.useWGLVersionOf5WGLGDIFuncSet'.
In case you have troubles, ie crashes within pixelformat setup etc,
it might be interesting if this may impact your behavior.
- ChoosePixelFormat(long, PIXELFORMATDESCRIPTOR)
- DescribePixelFormat(long, int, int, PIXELFORMATDESCRIPTOR)
- GetPixelFormat(long)
- SetPixelFormat(long, int, PIXELFORMATDESCRIPTOR)
- SwapBuffers(long)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previous commit 098398c2a9145447da5314eed9792b3738c2d515 cleaned up
and fixed context/drawable lock/unlock for makeCurrent()/release()/destroy()
and consistency is looks much better now in this regard.
However, on Intel HD 3000 / Windows7, our AnimatorControl start/stop still
let the 2nd switch to GLCanvas within the CardPanel not showing rendering results.
One interesting artefact though:
1st switch 2 GLCanvas (rendering visible):
*** hdc 0x2f010ec5, hdw(hdc) 0x1003a0, hdw 0x1003a0 - AWT-EventQueue-0, com.jogamp.opengl.util.Animator[started true, animating true, paused false, drawable 1]
*** hdc 0x160110c4, hdw(hdc) 0x1003a0, hdw 0x1003a0 - AWT-EventQueue-0, com.jogamp.opengl.util.Animator[started true, animating true, paused false, drawable 1]
*** hdc 0x2f010ec5, hdw(hdc) 0x1003a0, hdw 0x1003a0 - AWT-EventQueue-0, com.jogamp.opengl.util.Animator[started true, animating true, paused false, drawable 1]
*** hdc 0x160110c4, hdw(hdc) 0x1003a0, hdw 0x1003a0 - AWT-EventQueue-0, com.jogamp.opengl.util.Animator[started true, animating true, paused false, drawable 1]
-> alternating HDC's
2nd switch 2 GLCanvas (rendering _not_ visible):
*** hdc 0x160110c4, hdw(hdc) 0x1003a0, hdw 0x1003a0 - AWT-EventQueue-0, com.jogamp.opengl.util.Animator[started true, animating true, paused false, drawable 1]
*** hdc 0x160110c4, hdw(hdc) 0x1003a0, hdw 0x1003a0 - AWT-EventQueue-0, com.jogamp.opengl.util.Animator[started true, animating true, paused false, drawable 1]
*** hdc 0x160110c4, hdw(hdc) 0x1003a0, hdw 0x1003a0 - AWT-EventQueue-0, com.jogamp.opengl.util.Animator[started true, animating true, paused false, drawable 1]
*** hdc 0x160110c4, hdw(hdc) 0x1003a0, hdw 0x1003a0 - AWT-EventQueue-0, com.jogamp.opengl.util.Animator[started true, animating true, paused false, drawable 1]
-> fixed HDC
Maybe this is a hint for what is going wrong in JAWTWindow locking,
which aquires the frame's HDC.
Verifying the recursive lock shows proper lock/unlock actions though.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
makeCurrent()/release()/destroy() calls ; Enable context switch tracing ; GLCanvas: proper AbstractGraphicsDevice destruction
GLContext*/GLDrawableHelper: Fix consistency of recursive makeCurrent()/release()/destroy() calls
Utilizing volatile and lock.tryLock(0) for lockConsiderFailFast(),
reducing redundant synchronization and using RecursiveLock implicit sync.
GLContext 'early-out' is the case where the thread already holds the
context, ie. context is already current and the native makeCurrent is skipped.
makeCurrent()'s 'early-out' w/o incr. the recursive lock of GLContext
and it's NativeSurface could lead to asymetry in lock/unlock count
with release()/destroy() calls. The 1st release actually released the
native ctx already.
Properly utilize recursive lock/unlock in all cases and impl. 'early-out' after locking.
Following the above in GLDrawableHelper.invokeGL()'s 'early-out' case as well,
ie calling makeCurrent()/release() symmetrical.
Introduce GLDrawableHelper.disposeGL(), which issues dispose on all GLEventListeners
within a current context and issued context destruction directly.
This simplifies GLAutodrawable's destroy/dispose calls and ensures
that the above sequence of events happens atomically (lock is being hold until destruction).
Enable context switch tracing
If property 'jogl.debug.GLContext.TraceSwitch' is defined, trace context switch.
GLCanvas: proper AbstractGraphicsDevice destruction
|
| |
|
| |
|
|
|
|
| |
diff. Platforms
|
|
|
|
|
|
|
|
|
| |
ignored buffer position.
This was disclosed by testing agains the Intel HD 3000 GPU,
resulting in an INVALID OPERATION GL error (correct).
Other driver ignored this mismatch ..
|
|\
| |
| | |
Fix Eclipse 3.7 Ant build
|
|/
|
|
|
|
| |
Set Ant builder classpath to default to fix build problems. No Ant
customization is needed in Eclipse 3.7+, since it includes Ant
1.8.2.
|
|
|
|
| |
AndroidWindow: Trigger ScreenModeChanged only if Screen is already valid.
|
|
|
|
|
| |
On Gnome it happend that the current mode was not 'scanned' by RandR,
hence adding it if not existing helps stability.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
allow negative coordinates
- ScreenImpl:
- Use Point & Dimension for holding virtual origin and size
- updateScreenSize() -> updateVirtualScreenOriginAndSize()
- DimensionImmutable getNativeScreenSizeImpl()
-> void getVirtualScreenOriginAndSize(Point virtualOrigin, Dimension virtualSize)
- WindowImpl setFullscreen(true): Use Screen virtual origin
- WindowsWindow.c
- For x/y coords use GET_X_LPARAM/GET_Y_LPARAM which casts '(int)(short)'
to preserve negative coordinates.
- NewtWindow_setVisiblePosSize() allow negative coordinates
|
|
|
|
| |
error, private field access)
|
|
|
|
|
|
|
|
|
|
|
| |
Closing:
- Java: Set handle to null
- Native:
- Don't release the NSView explicit, but rely on NSWindow's release
- Don't use NSWindow close() but simply call release() instead.
The latter doesn't produce a crash SIGSEGV on exit in some cases.
OSX 10.7.2, NV GPU
|
|
|
|
|
|
|
|
|
|
| |
Add updateScreenSize() utilizing new getNativeScreenSizeImpl() to set/update the virtual Screen size.
This replaces setScreenSize() where the ScreenMode dimension was being used
which doesn't reflect the virtual size.
ScreenMode Test Impact:
We cannot assertEquals(sm.getRotatedWidth(), screen.getWidth()),
since ScreenMode size != virtual size.
|
|
|
|
| |
f3f794fe37a7e33a771a4a702f3f46ead4dc6d03: Unresolved symbols. Disable VERBOSE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Allow negative window position, using flag 'autoPosition' to mark a custom user position.
This impacts Windows and X11 window creation code, which supports native auto positioning.
- Screen: Validate Screen-Index.
In 'big-desktop' mode the Screen index is always 0. This is true for X11 with
Xinerama enabled and MS-Windows in general.
Platforms w/o multiple Screen support always use index 0.
- X11: Separate X11 Display/Screen/Window native code in their respective C files
- Windows test scripts: use '%*' to catch all arguments
- Add missing (c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GLJPanel:
- fix dispose of backend
- proper J2DOGL thread
- no double dispose
- remove VERBOSE
- no dispose regenerate flag
- add @Overrride
- more safe createContext(..) impl
- setSynchronized(true); for all backends
- ensure AbstractGraphicsDevice close() is being called
GLDrawableHelper:
- Clarify w/ isDisposeAction = null==initAction
GLPbufferImpl:
- ensure AbstractGraphicsDevice close() is being called
Java2D:
- remove VERBOSE
-
|
| |
|
|
|
|
|
|
|
| |
rotation! (How to ?)
Get/Set ScreenMode impl on OSX.
Set is limited to resolution and size, since I don't know how to change the rotation.
|
|
|
|
|
|
|
|
| |
based on native RANDR (more correct)
Clarify Screen's getWidth(), getHeight() values (-> rotated)
Also add DEBUG output for collected native modes and nativeIdx mapping.
|
| |
|
|
|
|
| |
contributor agreements and TCK license.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fix SWT test on OSX 32/64 bit:
- Pick 32bit SWT for 32bit tests
Fix TestSWTAWT01GL for OSX:
- Using proper thread for AWT and SWT actions, platform agnostic
but required for OSX.
- Enable SWT*AWT* tests on OSX
|
| |
|
|
|
|
| |
thread, only for shutdown.
|
|
|
|
|
|
|
| |
https://jogamp.org/bugzilla/show_bug.cgi?id=531
Sorry .. we normally don't add credits in these git logs,
maybe we should change that to encourage contributors!?
|
|
|
|
|
|
|
| |
atomic java JAR)
- GLProfile, NWJNILibLoader, NEWTJNILibLoader:
Issue Platform.initSingleton() upfront within priviledge block.
|
|
|
|
| |
shared surface before using it's HDC for pbuffer creation
|
| |
|
|
|
|
| |
sizeof(platformInfo)==0
|
| |
|
|
|
|
| |
bit test script.
|
| |
|
|
|
|
|
| |
- release on main-thread doesn't wait anymore
- use recursive lock
|
|
|
|
| |
realized or texture size is invalid.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NewtCanvasAWT/GLCanvas (delegation) ; Fix GLCanvas OffscreenLayerSurface usage.
JAWTWindow.destroy():
- No more getGraphicsConfiguration().getScreen().getDevice().close() call,
since the configuration (hence the device) is passed @ creation and owned by the caller.
New Interface 'OffscreenLayerOption', impl. by JAWTWindow (impl) and NewtCanvasAWT/GLCanvas (delegation)
- Abstract offscreenLayer option to be delegated by using classes
- Allow offscreen testing of GLCanvas as well (like NewtCanvasAWT)
Fix GLCanvas OffscreenLayerSurface usage
- common 'createDrawableAndContext()' for context and drawable instance creation
- addNotify() calls createDrawableAndContext() after super.addNotify() to be able
to lock the surface (JAWTWindow) and hence to determine offscreen usage.
- reshape(...) issues recreation 'dispose(true)' in case of using an offscreen layer
- dispose() explicitly destroys the JAWTWindow
NewtCanvasAWT:
- explicitly close the device of the JAWTWindow (as GLCanvas does)
Tests:
com.jogamp.opengl.test.junit.newt.parenting.TestParentingOffscreenLayer01GLCanvasAWT
com.jogamp.opengl.test.junit.newt.parenting.TestParentingOffscreenLayer02NewtCanvasAWT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
@ creation
GLDrawableFactory*.createOffscreenDrawable():
No implicit setRealized(true) @ creation, following deferred creation like onscreen drawables.
This allows using offscreen drawables in classes like GLCanvas, where realization is deferred due to pending valid size.
Only createGLPBuffer() realizes the offscreen pbuffer drawable immediatly to reduce the impact
on user-code.
GLDrawableFactoryImpl.createGLDrawable():
- Simplify OffscreenLayerSurface validation and check it first regardless of the chosenCaps
to get a chance to use pbuffer.
|
|
|
|
| |
signaling no extension is available.
|
|
|
|
| |
JVM/OpenGL-Driver issues
|
| |
|