| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
GLJPanel.shouldPreserveColorBufferIfTranslucent() and respecified it.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@130 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GLJPanel has a new rendering path which captures the Java2D back buffer via
GLDrawableFactory.createExternalGLDrawable()/createExternalGLContext() and
creates a new context on it for performing JOGL rendering. The new path is
enabled by default in Mustang build 51 and later when the Java2D/OpenGL
pipeline is turned on via -Dsun.java2d.opengl=true, and yields huge speedups
relative to the previous pbuffer-based GLJPanel implementation. GLJPanel in
the new configuration is nearly as fast as the GLCanvas, and still provides
100% correct Swing integration. No public API changes were required to JOGL
in order to implement this integration with one exception in
GLJPanel.isOGLPipelineEnabled(): see below.
Issues still remain, such as the desire to run all (not just some) OpenGL
work on the Java2D-internal Queue Flusher Thread to maintain single-threaded
behavior of the library. Currently GLCanvas's OpenGL work is run on the EDT
while GLJPanel's and GLPbuffer's OpenGL work is run on the QFT. Significant
restructuring to the GLCanvas will be required to achieve this goal. There is
some lag of mouse events with demos which are more expensive to render which
needs to be investigated. It will not be possible to implement calling of
display() on other non-pbuffer GLAutoDrawables from within the
GLEventListener's display() callback in this model. There are other issues as
well.
GLJPanel falls back to using a pbuffer internally when the Java2D back
buffer's pixel format is not suitable for rendering the JOGL demos (for
example, the InfiniteShadowVolumes demo, which requires stencil bits).
Added GLJPanel.isOGLPipelineEnabled() which applications can use to decide
whether to clear the color buffer or leave prior Java2D rendering results in
place for non-opaque GLJPanels. The JGears demo has been modified to query
that flag to maintain the gradient behind it while rendering the gears
directly into the Java2D back buffer.
GLCanvas uses the pixel format specified by Java2D if one is already set. It
turns out that when the Java2D OpenGL pipeline is enabled, one is always set
by default even though no Java2D rendering is performed into it, because the
AWT clears the background of Canvases by default in certain situations. This
can be disabled (only globally, unfortunately) by specifying
-Dsun.awt.noerasebackground=true.
Fixed issues with HDR and HWShadowmapsSimple demos where they needed to pay
attention to the x and y coordinates passed down in the reshape callback in
order to set up the correct OpenGL viewport. Fixed minor shutdown-related
issues with demos using gleem's ManipManager.
Tested (on NVidia hardware only so far) on Windows and X11 platforms with
Mustang build 51.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@125 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
routines affected by these extensions. New variants take long as
argument instead of Buffer for void*. For these routines as well as
the original versions, must check whether VBO/PBO is active or
inactive. Added check to affected methods to guarantee they are not
called within glBegin/glEnd pairs (which in most, if not all, cases is
already a requirement) to avoid tracking OpenGL state manually. Added
new JavaPrologue and JavaEpilogue commands to JavaConfiguration with
optional signatures to differentiate overloaded methods. Added
BufferObjectKind command to GLConfiguration which builds on
JavaPrologue support. Deleted BufferUtils.bufferOffset() and
associated native code.
In order to reduce the number of extension routines, added
IgnoreExtension directives for all extensions folded into OpenGL 1.1,
1.2 and 1.3 specifications; this means that if the core OpenGL version
is less than 1.3 then these extensions are effectively unavailable.
Updated demos for both new VBO/PBO API variants as well as extensions
folded into core.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/branches/JSR-231@120 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
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
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
all platforms
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@65 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
|
|
|
|
|
|
|
| |
GL object)
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@60 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
|
|
|
|
|
|
|
| |
events were not properly waiting for the Animator to stop.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@55 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
|
|
net.java.games.jogl.util, and moved demo-specific utility classes into
jogl-demos project under demos.util. Added nearly all JavaOne demos
into jogl-demos project; rewrote where necessary to use
ClassLoader.getResourceAsStream() instead of flat files, put into
packages and added to Makefile. Added gleem to jogl-demos project.
Added jogl.jar build rule.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@3 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
|