aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* GLProfile/Debug: Dump Version info upfront, otherwise we won't see it with ↵Sven Gothel2010-11-251-6/+6
| | | | | | an <init> exception. Also adding current thread name.
* GLCanvas: Refine access modifiersSven Gothel2010-11-251-4/+4
|
* Relax GLAnimatorControl, ie remove fail fast for start()/stop(), return ↵Sven Gothel2010-11-254-24/+29
| | | | (boolean)success instead.
* cleanup importsSven Gothel2010-11-251-7/+0
|
* Fix GLCanvas Recreation - Regression 96af6c9bf2d683115996Sven Gothel2010-11-252-32/+224
| | | | | | | | | | | | | | | | | | | | | | | | | | 96af6c9bf2d683115996 moved the creation of the AWTGraphicsConfiguration, GLDrawable and GLContext to the GLCanvas constructor. This disabled recreation, removeNotify()/addNotify() after 1st addNotify(), since the drawable/context were already set to null. Smart recreation, ie not destroying the resources completly: 1 - drawable 2 - context 3 - AWTGraphicsConfiguration's Device (X11: Display) is not possible, since removeNotify() is the only destroy notification we have from AWT, which would leave the above resources open -> leak. This is especially true for (3), since the device is created 'on the fly'. In NEWT we use lazy creation/destroy and are able to keep the references alive. A remodelling of AbstractGraphicsConfiguration would be required, which indeed would be overkill. Simple solution is to move the creation block back to addNotify() but before 'super.addNotify()', since it needs our chosen AWTGraphicsConfiguration. Also flagging sendReshape in addNotify(). Added test case com.jogamp.test.junit.jogl.awt.TestAWT03GLCanvasRecreate01.
* Ignore TestGearsGLJPanelAWT, not ready yetv2.0-rc1Sven Gothel2010-11-231-1/+2
|
* GLSL unit test timeout -> 60sSven Gothel2010-11-232-4/+4
|
* AnimatorBase: add()/remove() - decorate change of drawables with ↵Sven Gothel2010-11-231-30/+15
| | | | pause()/resume() so it becomes a non critical to multithreading, hence display() or state change needs to be synced
* Add GLJPanel test (works better in jogl-demos though, need to copy)Sven Gothel2010-11-233-9/+139
|
* Fix TestTransformFeedbackVaryingsBug407NEWT GLContext makeCurrent race conditionSven Gothel2010-11-231-0/+2
|
* JOGL/Junit: Refine TestTransformFeedbackVaryingsBug407NEWT, Add another ↵Sven Gothel2010-11-235-76/+633
| | | | simple GLSLShader test.
* X11/WGL: Unify GraphicsConfiguration Selection - Fixes WGL Bugs 397, 410, ↵Sven Gothel2010-11-237-359/+539
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 429, 428 and 405 Fixes bugs WGL pixelformat related bugs: http://jogamp.org/bugzilla/show_bug.cgi?id=397 http://jogamp.org/bugzilla/show_bug.cgi?id=410 http://jogamp.org/bugzilla/show_bug.cgi?id=429 http://jogamp.org/bugzilla/show_bug.cgi?id=428 http://jogamp.org/bugzilla/show_bug.cgi?id=405 Tested on Window7-x86 (amd/nvidia), WinXP-x32-VirtualBox. Solution: Cleaned up X11/GLX code to use it as a correct boilerplate for the new WGL selection, which now duplicates the same behavior. X11/GLX and WGL follow the common logic: - 1st try: - get GLCapabilities based on users GLCapabilities - setting recommendedIndex as preferred choice - 2nd try: - get all GLCapabilities available - no preferred recommendedIndex available If no recommendedIndex has been selected and no chooser has been passed, we use the DefaultGLCapabilitiesChooser. Choose the GLCapabilities if a chooser is given (or see above).
* TestTransformFeedbackVaryingsBug407NEWT: Fix class name and clarify outputSven Gothel2010-11-221-4/+4
|
* JOGL: Fix CreateDummyWindow usage, no more sync needed, since the Window ↵Sven Gothel2010-11-221-5/+1
| | | | class HINSTANCE is acquired at static initialization
* NativeWindow/Windows: Fix CreateDummyWindow gluegen and usageSven Gothel2010-11-221-1/+1
| | | | NativeWindow+JOGL/Windows: Complete Opaque types
* NativeWindow: Fix XSynchronize gluegenSven Gothel2010-11-221-2/+2
|
* JOGL/X11 Shutdown: Don't close pending Display connections since it may ↵Sven Gothel2010-11-221-1/+3
| | | | cause a SIGSEGV at JVM exit.
* GLAnimatorControl pause()/resume() don't fail fast, return a boolean instead ↵Sven Gothel2010-11-227-32/+34
| | | | to simplify usage.
* JOGL: AWT/GraphicsConfiguration - Use own display handle, reuse causes ↵Sven Gothel2010-11-211-5/+6
| | | | SIGSEGV on AMD
* JOGL/NEWT: Animator fixesSven Gothel2010-11-2118-341/+495
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consider use cases with many drawables and no drawables at start, this had to be reflected all over this patch set, implementation, usage and test cases. - GLAnimatorControl - refine API doc / states - add 'void remove(GLAutoDrawable drawable);' - Animator*: - using RecursiveLock 'stateSync' for all actions out of the big synchronized (animator) block: - get status methods (thread, isPaused, ..), hence no more synchronized - display drawables change, utilizing synced ArrayList swap This removes the need for volatiles usage shouldPause/shouldStop within the display method. - added blocking wait for state change for add(GLAutoDrawable)/remove(GLAutoDrawable) method - remove flawed double checked locking in anim thread (pause/idle condition) - thread is now a daemon thread, hence it won't hinder the JVM from shutdown - - Animator use change: - Always resume after pause, except in case of final destroy -> NEWT invalidate / GLCanvas, this considers use cases with many drawables and no drawables at start. - GLDrawableHelper: Don't pause at implicit dispose()
* minor formattingSven Gothel2010-11-191-11/+6
|
* Resume GLAnimatorCtrl after destroying, so it back in state for either this ↵Sven Gothel2010-11-191-0/+3
| | | | resource at recreation or it's possible other drawables
* Avoid sendDestroy mechanism in favor of immediate destroy using ↵Steve Vaughan2010-11-191-2/+21
| | | | AnimatorControl to pause rendering.
* Merge branch 'master' of github.com:sgothel/joglMichael Bien2010-11-1820-209/+654
|\
| * JOGL/AWT: Fix ~ 2 year old regressions: Choose & Use GraphicsConfiguration ↵Sven Gothel2010-11-1817-142/+615
| | | | | | | | | | | | | | | | | | | | | | | | | | | | for Canvas. ; Adding FSAA test. Canvas/X11: The Canvas GraphicsConfiguraton should be chosen before the native peer is being created. Choosing AWT GraphicsConfiguration (all platforms): Don't filter our capabilities with 'AWTGraphicsConfiguration.setupCapabilitiesRGBABits(capsChosen, gc)', not necessary (see above) and it would remove ourrequired alpha channel. Canvas display(): Don't render if drawable is not realized (yet).
| * NativeWindow JAWT Impl: Fix: Remove double unlock of locks if JAWT lock failed.Sven Gothel2010-11-183-67/+39
| |
* | print platform info additional to the module info.Michael Bien2010-11-186-0/+9
| |
* | modifications due to changes in GlueGen's VersionUtil.getManifest().Michael Bien2010-11-183-13/+9
|/ | | | made references created in double checked locks volatile.
* NEWT: Adding CapabilitiesChooser setter and using it in createNativeImpl() ..Sven Gothel2010-11-1813-15/+42
|
* Finishing Immutable changes including GLCapabiltiesImmutable.Sven Gothel2010-11-1769-469/+848
|
* NEWT X11Display: ignore null Display handle at dispatchSven Gothel2010-11-172-13/+36
|
* Merge branch 'pulled'Sven Gothel2010-11-1716-49/+147
|\
| * Implement CapabilitiesImmutable to indicate that getRequestedCapabilities() ↵Steve Vaughan2010-11-1716-50/+143
| | | | | | | | and getChosenCapabilities() return immutable instances. Add cloneCapabilities() to create a mutable clone of an immutable set of capabilities.
| * Clone Capabilities on input, providing a local copy when requested. This ↵Steve Vaughan2010-11-161-4/+8
| | | | | | | | | | | | eliminates the cloning that was occuring for each swap buffer call. This is the first step in implementing immutable Capabilities.
* | cleanup importsSven Gothel2010-11-174-18/+0
| |
* | GLWindow becomes NEWTEventConsumer (missed that one) ; Adding test for ↵Sven Gothel2010-11-172-1/+126
| | | | | | | | | | | | | | NEWTEventConsumer and AWTTreeLock The unit test for NEWTEventConsumer and AWTTreeLock, tests previous commit 'JAWTWindow: Avoid AWTTreeLock' b0b1e3fb9c0f915cdf8d237c0f61a9d08ca83b01
* | Move shutdown hook registration to GLDrawableFactory.Sven Gothel2010-11-172-29/+59
| | | | | | | | Unregister the shutdown hook if called manually (recommended!).
* | JAWTWindow: Avoid AWTTreeLock, cleanup.Sven Gothel2010-11-175-32/+84
| | | | | | | | | | | | | | Use native implementation for getLocationOnScreen() if available. If unavailable call AWT's implementation only in case the AWT TreeLock is hold by this thread. Finalize methods ..
* | Moving NEWT X11Window GetRelativeLocation() native implementation to ↵Sven Gothel2010-11-174-73/+74
| | | | | | | | NativeWindow X11.
* | Move GDI GlueGen wrapping from JOGL -> NativeWindow (following X11). Moving ↵Sven Gothel2010-11-1713-98/+296
|/ | | | NEWT WindowsWindow GetRelativeLocation() native implementation to GDI as well.
* NEWT Lifecycle remodel: Window destroy() !Sven Gothel2010-11-1638-551/+501
| | | | | | | | | | | | | | | | | | | | | | | NEWT's removed: Window: destoy(boolean unrecoverable) Display/Screen: get/set DestroyWhenUnused(boolean) We behave as follows: - Window.destroy() always decr Screen's reference counter, which issues destruction when reached zero. Then Screen does the same for Display .. - Window.destroy() keeps alive all references, hence it can be always recreated via setVisible(true). - Window.destroy() ensures Display's EDT is stopped if display is destroyed. - Window.invalidate() actually removes all Object reference, hence it cannot be recreated or used after it. This method exist to support a way to cleanup memory, GC. All test passed on Linux/X11 and Windows
* X11: Make X11 error handler quiet where we expect an X11 error, ie OpenGL 4 ↵Sven Gothel2010-11-163-14/+18
| | | | not available ..
* NEWT: Cleanup reparent (window resize/display) ; AWT Focus Tests: Bring back ↵Sven Gothel2010-11-153-27/+23
| | | | AWT wait period.
* NativeWindow AbstractGraphicsDevice: Add 'unitID' attribute and getUniqueID()Sven Gothel2010-11-1536-120/+135
| | | | | | | | | | Preparation to support multiple devices on one machine, hence adding the unitID a unique ID/index of the associated GPU, or GPU affinity. Adding getUniqueID() to return a cached semantic unique string id for the device. This was removed from the temp. impl in JOGL's GLContext, added unitID. All other changes just adapt to the above.
* NEWT: Make setVisible/reparentWindow return status more reliable ↵Sven Gothel2010-11-158-99/+74
| | | | | | | (visibility, displayed) Ensure that at least one frame has been rendered after returning from the functions. This removes the hack of polling a while for a rendered frame.
* JOGL X11/WGL: Proper usage of the shared resources in implementationSven Gothel2010-11-144-74/+103
|
* JOGL: Complete eager and lazy mapping of GLProfiles in respect to multiple ↵Sven Gothel2010-11-1424-664/+1975
| | | | | | | | | | | | | | device. AbstractGraphicsDevice's 'connection' and 'type' attribute is used as a unique key to map GLProfiles and GLContext's major/profile -> major/minor/profile mapping. Eager initialiaztion as well as lazy is supported to maintain a simple API. This is currently tested on X11, where one app display NEWT/GL window and content on the local and remote device. See TestRemoteWindow01NEWT.java and TestRemoteGLWindows01NEWT.java
* import cleanupSven Gothel2010-11-142-6/+0
|
* import cleanupSven Gothel2010-11-141-10/+7
|
* ExtensionAvailabilityCache: Fall back to glGetString, if glGetStringi fails; ↵Sven Gothel2010-11-141-9/+18
| | | | Add threadName to DEBUG output