summaryrefslogtreecommitdiffstats
path: root/src/demos/jrefract
Commit message (Collapse)AuthorAgeFilesLines
* Added XTrans (Accelerated Transitions) demo, which uses the Kenneth Russel2005-10-121-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Java2D/JOGL bridge in a completely different way than the GLJPanel. The OffscreenDesktopPane and associated classes are an attempt at a generalized mechanism for supporting off-screen rendering of Swing components within a JDesktopPane and later composition (by subclasses) of those components' contents on-screen. The XTDesktopPane is intended to be a drop-in replacement for the JDesktopPane which supports OpenGL-accelerated animated transitions for components added to and removed from it. The XTBasicTransitionManager and XTBasicTransition classes define the default implementation of animated transition effects, supporting a combination of fade, rotation and scroll effects. More, and arbitrary, transitions are certainly possible. More experimentation by the community is needed. This demo is intended as a first step toward a more generalized framework in which arbitrary Swing rendering can be performed via the Java2D/JOGL bridge. Bugs remain, such as needing to preserve portions of the OffscreenDesktopManager's back buffer after components have been made not visible (during the process of closing them) in order to properly animate their close effects. The XTrans demo works properly in most cases but the JRefract demo (which now accepts an -xt command line argument to install an XTDesktopPane instead of a JDesktopPane) does not. More work also remains to be done, in particular on the layout of components on the back buffer. A 2D bin-packing algorithm is needed. When the Java2D/JOGL bridge supports Java2D's use of the Frame Buffer Object extension (and, implicitly, render-to-texture on all platforms) the glCopyTexSubImage2D operation to copy the off-screen back buffer to a VolatileImage can disappear; this is the principal expensive operation when the contents change of components which have been added to the OffscreenDesktopPane. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@140 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Refactored demos to mostly subclass common Demo superclass providing Kenneth Russel2005-09-091-33/+38
| | | | | | | | | | | | | shutdown capabilities. Moved DemoListener to demos.common package. Added ManipManager removal code to demos using manipulators or ExaminerViewer to fix memory leak when run in JRefract harness. Added workaround for another seeming memory leak when run under current JDK 1.6 due to java.awt.Component now being finalizable and keeping data alive longer than previously. Made ManipManager.unregisterWindow more lenient with respect to null or invalid arguments. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@122 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Renamed all files to intended destination packages for JSR-231. The Kenneth Russel2005-08-301-2/+3
| | | | | | | | | | | only package specified by the JSR is "javax.media.opengl". The utility package com.sun.opengl.utils is Sun-specific and optional. The Cg binding has been moved into com.sun.opengl.cg. Moved Animator and FPSAnimator to com.sun.opengl.utils. Updated and tested demos with new source code locations. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@118 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Cleaned up imports in JRefract demoKenneth Russel2005-08-171-5/+0
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@115 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Revised JGears demo to add FPS counter and logos drawn with Java2D and Kenneth Russel2005-08-171-14/+7
| | | | | | | | | | changed JRefract and JGearsFullscreen demos to use JGears instead. Fixed bugs in fullscreen demos where workarounds were lost during last refactoring; created new FullscreenWorkaround GLEventListener which implements the workaround. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@114 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Restructured Animator to handle multiple GLAutoDrawables and to yield Kenneth Russel2005-08-141-42/+6
| | | | | | | | CPU within animation loop (configurable by overriding sync()). Added FPSAnimator subclass. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@112 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Broke another deadlock with VertexProgWarp demo in JRefract frameworkKenneth Russel2005-08-061-2/+6
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@111 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Refactored nearly all demos as GLEventListeners and imported most into Kenneth Russel2005-08-061-18/+127
| | | | | | | JRefract framework. Deleted duplicate Gears code in fullscreen demos. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@107 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Refactored Gears, VertexProgRefract and Water demos to be more Kenneth Russel2005-08-051-938/+59
| | | | | | | | modular. Started rewriting other demos like JGears and JRefract in terms of others to share more code. Added Water demo to JRefract demo. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@106 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Further context-related changes for the JSR-231 API. The GLContext Kenneth Russel2005-07-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | implementations on all platforms have been split into orthogonal GLDrawable and GLContext concepts. It is now possible to create more than one GLContet per GLDrawable (though this has not been tested yet). GLCanvas has been reimplemented in terms of GLDrawableFactory.getGLDrawable(). More functionality has been moved from GLDrawable to GLAutoDrawable. Reimplemented lazy sending of reshape GLEventListener events in GLCanvas and GLJPanel and deleted notion of deferred reshapes from GLDrawableHelper and elsewhere. Sharing of textures and display lists is now expressed in terms of GLContexts instead of GLDrawables. Still need to move pbuffer creation into GLDrawableFactory from the onscreen GLContext implementations. Added option to gleem ExaminerViewer to disable automatic redraws upon mouse events and respecified more of gleem to work on GLAutoDrawables rather than GLDrawables. Updated all JOGL demos to work with new APIs and slightly different initialization sequences (in particular, for pbuffers -- this will change with the addition of GLDrawableFactory.createGLPbuffer()). git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@103 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Initial set of context-related changes for the JSR-231 API. GLContext Kenneth Russel2005-07-101-8/+8
| | | | | | | | | | | | | | | has been exposed in the public API. The GLEventListener callback mechanism has been removed from the core GLContext implementation and moved up to a higher level. GLAutoDrawable now contains the GLEventListener-related methods, and the GLEventListener's methods now receive a GLAutoDrawable as argument. All JOGL demos have been updated for the new APIs. Many FIXMEs and much unimplemented functionality remain. There is slightly different initialization behavior for the demos containing pbuffers, and the deferring of reshape callbacks needs to be rethought. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@100 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Fixed Windows port after changes to GlueGen to include array offsets. Kenneth Russel2005-07-081-11/+11
| | | | | | | | | | | Ported all demos to new API. Temporarily added back in GLU entry points taking primitive arrays as the underlying APIs (in particular, glTexImage2D) do not yet support non-direct Buffers. Changed C code generation to only add in array offset if array is non-null. Fixed bug in GLU tesselator demo's vertex callback. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@99 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Merged with main trunk (tag JOGL_PRE_1_1_1)Kenneth Russel2005-07-071-39/+487
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@98 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* This commit was manufactured by cvs2svn to create branch 'JSR-231'.First Last2005-06-161-439/+17
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@93 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Fixed race condition in GLJPanel implementation and improved behaviorKenneth Russel2005-05-101-9/+13
| | | | | | | of JRefract demo on Linux git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@72 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Fixed Issue 151: starting up the Animator before the GLJPanel has been shown ↵Kenneth Russel2005-05-071-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | result in an error The root cause of this error was the fact that WindowsPbufferGLContext.destroyImpl() uses WGL extensions to clean up resources associated with the pbuffer. Because these extensions are in the public WGL interface, they are wrapped by the DebugGL. However, an OpenGL context is not current at the time these routines are called, and it is illegal to call glGetError() at those points. The DebugGL pipeline was implicitly calling glGetError() after each of those calls, leading to the failure. This bug unmasked a couple of others. The code in the DebugGL needed a recursion count to make sure that glGetError() didn't get called in an infinite loop. Also, as a side effect of the fix for Issue 160, calling getGL() on the GLJPanel outside of GLEventListener.init() was causing a NullPointerException to be thrown. The GLJPanel has been fixed to return null in this case, and the specification of GLDrawable.getGL() has been improved. In order to make the behavior between the GLCanvas and GLJPanel similar, the GL object is now reset in the GLDrawable each time the underlying OpenGL context is recreated. This allows end users to set up e.g. the DebugGL unconditionally in their GLEventListener.init() method. The JOGL demos have been changed to reflect this. The test case in the bug report will be updated with code similar to the originally submitted test case (i.e., the Animator is started early) but which now works. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@71 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Fixed Issue 160: Resource leaks in GLJPanel Kenneth Russel2005-05-021-16/+428
| | | | | | | | | | | | | | Added addNotify and removeNotify to GLJPanel which clean up the associated OpenGL contexts and other resources. Extended JRefract demo to stress GLJPanel creation and destruction. New code appears to be correct. Can see resource leaks when the bunny is loaded over and over, but believe these are probably due to allocation of large NIO buffers that are not getting finalized promptly. Stressing the Gears demo with both the pbuffer and software rendering paths shows that the OpenGL resources are being reclaimed properly. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@66 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added slight variation of VertexProgRefract demo which embeds the demo Kenneth Russel2005-02-041-0/+781
inside a JInternalFrame using the new hardware-accelerated GLJPanel. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@46 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4