| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@274 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
| |
selection to fix problems seen on Solaris/x86
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@270 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@269 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
| |
showed up after recent GLJPanel fix to clean up resource leaks.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@267 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
| |
of JRefract demo on Linux
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@266 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
| |
javagaming.org forums where use of proxy textures was illegally
setting a GL error condition.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@265 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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/trunk@264 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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/trunk@263 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
| |
Added GL.setSwapInterval() which delegates to appropriate
platform-dependent routines. Must be called only from within
GLEventListener callbacks.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@260 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
old rendering model.
Added SingleThreadedWorkaround.disableWorkaround(); for now, don't
want to add this to the core JOGL API because at some point the
SingleThreadedWorkaround should hopefully really become an
implementation detail that no application should have to worry about.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@259 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The test case specifies alpha bits in the GLCapabilities, which caused
the GLJPanel to create a TYPE_INT_ARGB BufferedImage to store the
results of the readback of the frame buffer for rendering into the
GLJPanel. This appears to not be the correct thing to do, because it
causes this BufferedImage to be alpha-blended with whatever other
rendering is performed into Java2D's backing store. Therefore when the
button was redrawn, its image would show up in this backing store
alpha-blended with the OpenGL rendering results since both were
redrawn simultaneously. I believe the correct solution is to never
create a BufferedImage with an alpha component for the framebuffer
readback even if alpha bits are specified in the GLCapabilities. This
is what has been implemented in the JOGL source base.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@258 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
| |
Fixed off-by-one error in rendering of GLJPanel's hardware-accelerated
rendering results to the screen.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@257 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
| |
Applied patch from user tedmunds to provide both an old-style GLUT
teapot as well as one which fixes some problems with the teapot's
geometry and orientation. Updated HWShadowmapsSimple demo to use
glutSolidTeapot as originally intended.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@256 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
| |
OS X by updating the context during every makeCurrent, not just upon
reshape. This appears to solve some issues without impacting
performance significantly, although not all of the issues reported by
users were reproducible on the machine where the fixes were tested.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@255 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
| |
javagaming.org forums where combine callback was being called with
incorrectly-typed outData
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@253 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@249 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
| |
now-unnecessary semaphore and heuristics
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@247 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
| |
window system's recommended choice
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@242 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed Issue 124: SIGSEGV on Fedora Core 3 / NVIDIA
Stability problems have been reported on all three of JOGL's major
supported platforms (Windows, Linux and Mac OS X) whose root cause is
multithreading-related bugs in vendors' OpenGL drivers.
On Windows, the most recent version of NVidia's drivers (66.93) when
run on a GeForce 6800 causes a blue screen of death upon exit from the
simplest JOGL demo (Gears).
On Linux, JVM crashes have been reported upon exit of certain test
cases on NVidia hardware. The same test case causes a report of an
unexpected async reply from Xlib on ATI hardware (at the last time of
testing -- I no longer have access to a Linux machine with ATI
hardware because all of their currently available drivers crash the X
server on my machine).
On Mac OS X, low-level warnings from Cocoa are printed in
multithreaded JOGL situations which can lead to JVM crashes.
All of these problems' root cause is that the current OpenGL drivers
on the market, or supporting software built on them, were not designed
to be used in a multithreaded fashion. Most C programs which use
OpenGL are either single-threaded or perform all of their OpenGL work
from a single thread. JOGL was originally designed to support OpenGL
rendering from arbitrary threads and appropriate synchronization was
introduced into the library to handle this. However, we have had to
scale back this support as stability issues have been encountered.
The most recent round of reported bugs, including the PC crash upon
exit of the JOGL demos, is serious enough that we must take drastic
measures. Support was introduced in earlier JOGL releases to move all
of the OpenGL work performed by JOGL and users' code via the
GLEventListener on to the AWT event dispatch thread. It turns out that
doing this works around all of the above reported bugs. In JOGL 1.1
b08 and 1.1 b09, code changes were made to make this single-threaded
support more correct; this checkin includes another small set of such
changes, including some to the GLPbuffer implementation, and changes
the default of the flag controlling this support to true.
-Djogl.1thread=true is now the default. -Djogl.1thread=auto restores
the behavior of previous releases, which was to enable the
single-threaded mode only with ATI cards. This auto-detection
mechanism was not robust enough and adding cases for the crashes above
was not feasible. -Djogl.1thread=false disables the single-threaded
workaround. Older synonyms for this system property,
JOGL_SINGLE_THREADED_WORKAROUND and ATI_WORKAROUND, remain in the
source base for the time being. Changing the value of any of these
system properties is not recommended.
The expected performance impact of these changes is minimal. In
earlier JOGL releases it appeared that the overhead of making a
context current and releasing it each frame was very significant and a
key differentiator in being able to match C performance. More recent
tests seem to indicate that this is no longer the case, at least with
current hardware. Regardless, we must achieve stability in order for
the library to be useful and this seems to be the best means of
achieving that goal.
We believe that the compatibility impact of these changes for existing
JOGL applications will also be minimal. For correctly-written JOGL
applications, the only visible change in behavior should be that the
values of thread-local variables accessed through the
java.lang.ThreadLocal class may change since the actual thread on
which the GLEventListener's callbacks will be executed may have
changed. Multithreaded JOGL applications performing complex
inter-thread synchronization may see subtle differences in behavior.
We hope that such applications and the developers writing them will be
able to handle this change in behavior without much trouble.
We will continue to work with graphics card vendors to improve the
stability of their OpenGL drivers. Until that happens, we believe this
change will yield the best possible improvement in stability and
portability for applications using JOGL.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@241 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
| |
that it will be more stable on some cards
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@240 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@239 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
| |
always returns true
Fixed the Windows implementation of this routine to check for the
presence of the WGL_ARB_pbuffer and WGL_ARB_pixel_format extensions.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@238 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
| |
Last portion of fix. Fixed typo in one loop in scale_internal_byte and
scale_internal_ubyte routines, correcting visual artifacts. Fixed
truncated comments.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@236 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@235 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was a bug in the SGI GLU sample implementation and was reproduced
by converting the attached test program to C and compiling in the code
from the sample implementation. This bug was already fixed in the Mesa
sources as bug 2510 and the patch was found at
http://cvs.freedesktop.org/mesa/Mesa/src/glu/sgi/libutil/mipmap.c?rev=1.6&view=log
by Googling for the terms "mipmap.c last row". The fix is to add a
test-and-clamp for the highest row read from the texture.
There is still a problem with visual artifacts when scaling
non-power-of-two textures that this test case reproduces and that is
continuing to be investigated.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@234 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed / worked around problem found by user mustang on the javagaming
forums where if a recursive makeCurrent failed, it would incorrectly
end up freeing the parent context. Not completely confident of this
bug fix, but definitely fixes the mentioned problem and doesn't appear
to break any of the demos.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@233 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
| |
where GLJPanel.display() wasn't synchronous but should have been
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@231 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@230 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@228 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@227 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
| |
Setting of the GL_PACK_LSB_FIRST property confused the drivers even
though it didn't apply to the frame buffer readback (it applies only
for bitmap data, and we were reading bytes.)
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@226 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
| |
Applied suggested patch from submitter.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@225 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@224 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@223 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@222 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
| |
to the wrong source buffer and were halving to the wrong size.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@221 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scaling operations. Added new ForceProcAddressGen directive to GlueGen
to force the addresses of the C routines to be fetched even though the
functions were being ignored by the core JavaEmitter. Cut down on the
number of variants of gluScaleImage and associated routines. Changed
the Java signatures of the affected methods to take Buffer again
instead of ByteBuffer (as was done during prototyping) to attempt to
maintain binary compatibility with current JOGL programs. Fixed bug /
problem in gluScaleImage implementation where incorrect scaling of
pixel values was being applied in Image.empty_image(); there may be
additional problems here for other pixel types. Put debugging code in
BuildMipmap under jogl.debug.BuildMipmap System property.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@215 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
| |
Added a workaround in X11GLContext for bug in ATI's drivers where they
report only GLX 1.2 support, but actually do support pbuffers.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@214 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@213 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@212 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
| |
Enabled hardware acceleration for GLJPanel by default after testing on
Windows and Linux platforms.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@211 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
| |
pbuffer case. Doesn't seem to (and shouldn't) affect the normal
onscreen case. Added additional debugging output.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@210 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed Issue 61: Make debug variables load from system properties
Added a hardware acceleration path for GLJPanel implemented using the
GLPbuffer interfaces. If instantiation of the pbuffer fails, the
GLJPanel implementation attempts to catch the resulting exception and
fall back on the existing software rendering path.
The new code has been successfully tested on Windows. This checkin
attempts to make the needed changes to the pbuffer implementation on
other platforms, but the GLJPanel continues to use software rendering
until all platforms can be tested.
Additionally, references to static final DEBUG flags have been made
settable via system properties. "jogl.verbose" enables certain
printing statements. "jogl.debug" enables all debugging printing.
"jogl.debug.GLContext" enables the debug printing inside the GLContext
class. The system property names are chosen by convention and are not
enforced.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@209 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
| |
mipmap code
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@208 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
| |
Updated heuristic of when to block waiting for the animator to stop.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@205 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
| |
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@204 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
| |
portions of GlueGen for more flexibility. Also fixed source-level
problems associated with making GLCapabilities' clone() not throw
CloneNotSupportedException.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@202 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
set pixel format"
This is probably due to JOGL trying to request a double-buffered pixel
format for the offscreen surface. To prevent applications from having
to explicitly set the DoubleBuffered property of the GLCapabilities to
false, the GLCanvas now clones the incoming GLCapabilities and
disables double-buffering before requesting the underlying GLContext.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@200 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(ATI-specific)
The root cause of this bug was not the new DummyGL code, but severe
bugs in ATI's OpenGL drivers where it appears that if an OpenGL
context is ever made current on more than one thread during the
lifetime of an application, problems begin to occur such as the
SetPixelFormat call failing on the just the next newly-created HDC, or
all subsequent SetPixelFormat calls failing on all
subsequently-created HDCs. This was occurring because the
single-threaded ATI workaround's automatic detection mechanism was not
being enabled until the first time a context was made current, but by
then it was typically too late; the context was made current on the
end user's thread during e.g. Frame.show(), and if it was ever made
current on another thread (like the AWT event queue thread, which is
where all OpenGL operations are performed when the single-threaded
workaround is enabled) then the problems would begin.
The failure has only been seen on Windows so far; ATI's drivers on X11
seem to be better behaved. The workaround is to check for the presence
of ATI's drivers very early during JOGL's initialization, by looking
in the system directory for atioglxx.dll, and enabling the
single-threaded workaround if it was found. This workaround causes the
attached test case to work properly.
Also added some more debugging code to make diagnosing problems like
these easier in the future.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@196 232f8b59-042b-4e1e-8c03-345bb8c30851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The root cause was that JOGL's single-threaded workaround had a bug
where if automatic swap buffer support was disabled, the user's calls
to swapBuffers() were not being retargeted to run on the AWT event
queue thread, as calls to display() were.
The effect of this was that the OpenGL rendering was not necessarily
guaranteed to complete before swapBuffers() was called, unless a
glFlush() / glFinish() pair was inserted. Interestingly, testing
showed that inserting the glFlush() / glFinish() just before the call
to swapBuffers(), which was executing on the user's thread rather than
the AWT event dispatch thread, did not cause the rendering output to
complete properly. This implies either a bug in the implementation of
glFlush() / glFinish() on the testing platform or a misunderstanding
on my part of how these APIs behave. Putting the flush/finish after
all of the OpenGL work done by the user in their display() routine
worked correctly.
Regardless, the intent of the single-threaded workaround was to cause
all OpenGL-related work to be done on the event dispatch thread, which
it now does. This fixes the reported problem.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@195 232f8b59-042b-4e1e-8c03-345bb8c30851
|