summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Integrated John Burkey's new TextRenderer implementation using Kenneth Russel2007-10-092-0/+19
| | | | | | | | | | | | | | | | | | | | | glyph-by-glyph caching for most cases, with fallbacks to String-by-String caching for complete Unicode correctness. New implementation yields drastic performance improvements for applications displaying large amounts of dynamic text. Upgraded JOGL demos to work with new TextRenderer. This checkin fixes at least the following issues: Issue 261: Throttle shrinking of backing store texture for TextRenderer Issue 293: TextRenderer: width of strings with spaces not correct in RC4 Issue 294: TextRenderer: rendering stops when a string is wider than the maximum texture size Issue 304: TextRenderer rendering artifacts in 3D mode as well as outstanding performance issues with the current TextRenderer reported on the JOGL forum. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@221 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added comments based on some from Jason MooreKenneth Russel2007-09-091-0/+12
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@220 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added usage of codebase_lookup=falseKenneth Russel2007-07-052-0/+4
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@219 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Updated applet tests to use JNLPAppletLauncherKenneth Russel2007-07-042-85/+99
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@218 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added noddraw.check to applettest-next.htmlKenneth Russel2007-07-041-0/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@217 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Updated applettest-joal-next to use same absolute URLs as applettext-nextKenneth Russel2007-07-041-3/+2
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@216 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Further simplificationKenneth Russel2007-07-031-2/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@215 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Test to see if we can use absolute URLs in archive tagKenneth Russel2007-07-031-2/+2
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@214 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Changed applettest-joal-next.html to use JNLPAppletLauncherKenneth Russel2007-06-281-4/+7
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@213 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Changed applettest-next.html to use JNLPAppletLauncherKenneth Russel2007-06-281-6/+7
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@212 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Fixed Issue 296: TextureIO cube map support brokenKenneth Russel2007-04-214-5/+2
| | | | | | | | | | | | | Fixed code paths supporting cube maps. As a positive side-effect, the VertexProgRefract demo's cube map is now rendered completely correctly; inversion of the positive and negative Y images, and the negative Y scale factor on the texture matrix, are no longer needed, and the seams around the top image are gone. Fixed code relating to automatic mipmap generation in the presence of only GL_ARB_texture_rectangle and not GL_ARB_texture_non_power_of_two. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@211 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added a markDirty() method to TextureRenderer and removed the sync() Kenneth Russel2007-03-272-4/+4
| | | | | | | | | | | method. markDirty() may be called at an arbitrary point (in particular, when no OpenGL context is current) and the union of the dirty regions is automatically synced with the underlying texture during the next getTexture() operation, at which point the dirty region is cleared. Adjusted Overlay and TextRenderer classes. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@210 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Updated link to Pepijn van Eeckhoudt's Nehe JOGL portsKenneth Russel2007-03-121-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@209 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Fixed package name in Picking demo and added Z values to verify Kenneth Russel2007-03-051-0/+5
| | | | | | | correct Z computation git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@208 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added CustomText demoKenneth Russel2007-02-152-0/+63
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@207 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added RenderDelegate mechanism to TextRenderer to provide more control Kenneth Russel2007-02-111-0/+409
| | | | | | | | where desired over the rendered text bitmap. Added CustomText demo to demonstrate its usage. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@206 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added link to Chris Campbell's new Java 2D and JOGL blog entryKenneth Russel2007-01-231-0/+3
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@205 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added TestTextRenderer, FlyingText, TextFlow, and TextCube demosKenneth Russel2007-01-235-0/+252
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@204 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added TestTextRenderer, FlyingText, TextFlow, and TextCube demos toKenneth Russel2007-01-221-0/+4
| | | | | | | test page git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@203 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Made default size of demo window largerKenneth Russel2007-01-211-1/+8
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@202 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added 3D rendering methods to TextureRenderer and TextRenderer on Kenneth Russel2007-01-204-55/+443
| | | | | | | | | | | | request of several people on javagaming.org forums. Refactored existing 2D rendering support in these classes in terms of the new 3D methods. Wrote new TextCube demo illustrating how to render 2D text in 3D using the TextRenderer. Factored out FPS counter rendering into new FPSCounter utility class and updated TestTextRenderer and FlyingText demos. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@201 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Robustness improvements to TextRenderer and underlying RectanglePacker. Kenneth Russel2007-01-131-0/+202
| | | | | | | | | | | | | | | Added ability to specify a maximum size to which the RectanglePacker can expand. Added preExpand method to BackingStoreManager to support early eviction of unused entries instead of always expanding the backing store, and additionFailed method used when the backing store can not expand further. Added more robust free list coalescing to Level. Added support for shrinking of backing store and for eager compaction when there is a lot of vertical dead space. Added TextFlow demo which shows how to do dynamic layout of text and which acts as a stress test for the TextRenderer. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@200 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added new FlyingText demo to illustrate more advanced usage of the Kenneth Russel2007-01-072-3/+495
| | | | | | | | | | | TextRenderer class; displays dynamically rotated, translated and colored text. Changed how setSmoothing() is handled by the TextureRenderer and stopped disabling smoothing in the TextRenderer. For the time being, not exposing this flag in that class to keep the API simple. Changed TextRenderer to also push/pop the texture matrix. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@199 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* With help from Chris Campbell, fixed incredibly stupid bug on my part Kenneth Russel2007-01-063-9/+13
| | | | | | | | | | | | | | | | where the new Java 2D TextureRenderer was destroying and re-creating the OpenGL texture every frame. This was why the Java 2D Overlay class was so expensive, and why the TextRenderer wasn't as fast as it seemed it should be. Fixed bugs in all of the Java 2D demos which were covered up by this implicit sync, as well as in the TextRenderer class itself where it was missing a key sync operation. Added code to the Texture.updateSubImage() implementation to clip the incoming rectangle to the bounds of the input data and texture, to keep OpenGL from dropping almost-valid updates on the floor. Ran all of the Java 2D integration demos to verify these fixes. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@198 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Removed debugging codeKenneth Russel2007-01-041-69/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@197 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* With extensive help from Phil Race and Chris Campbell from the Java 2D Kenneth Russel2007-01-041-0/+246
| | | | | | | | | | | | | | | | | | | | | | team, added a TextRenderer class which enables high-performance rendering of bitmapped Java 2D fonts, with full Unicode support, into arbitrary OpenGL drawables using a simple API. Builds on top of the TextureRenderer class and its associated functionality; added createAlphaOnlyRenderer() and other methods to enable the TextRenderer. Caches rendering results on a string-by-string basis in an OpenGL texture using a fully automatic least-recently-used algorithm for good efficiency when rendering the same string or strings multiple times. Uses a rectangle packing algorithm, currently housed in com.sun.opengl.impl.packrect, for managing the positions of cached strings on a larger OpenGL texture to avoid OpenGL pipeline state changes. Added a TestTextRenderer demo which simply adds a moving text string and frames-per-second counter to the Gears demo; more sophisticated examples to come. (Some commented-out debugging code is being temporarily left in the new demo, to be removed in the next checkin, in order to have it in the version history.) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@196 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Moved J2DTextureRenderer and J2DOverlay into their own sub-package and Kenneth Russel2007-01-042-13/+13
| | | | | | | | | dropped the prefixes on the suggestion of Chris Campbell. No other changes to these classes. Added com.sun.opengl.util.j2d to the javadoc generation. Updated demos. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@195 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* On request from James Gosling and others, added a J2DTextureRenderer Kenneth Russel2006-12-302-0/+407
| | | | | | | | | | | | | | | | | | class to com.sun.opengl.util to make it easier to render into OpenGL textures using Java 2D. Added convenience methods to this class to make it easy to draw sub-rectangles of the resulting texture to the screen. Added a J2DOverlay class which acts like a Java 2D-based heads-up display for an arbitrary GLDrawable, tracking its size and making it easier to render the entire contents of the HUD. There appear to be performance issues with the J2DOverlay class as the window gets large, at least on older hardware, as it allocates very large OpenGL textures internally. Added tests for both the J2DTextureRenderer and J2DOverlay classes which have similar functionality but different implementation approaches and different performance characteristics. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@194 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Updated copyrightKenneth Russel2006-12-301-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@193 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Fixed Issue 257: RFE: Texture.updateSubImage(x,y,w,h) Kenneth Russel2006-12-291-0/+303
| | | | | | | | | | | | | | | | | | | | Changed TextureIO's BufferedImage code paths to no longer copy the data in order to correct for the vertical flip needed between Java 2D's and OpenGL's coordinate systems, but instead to correct for this using a flip of the texture coordinates. This was needed to change the semantics for the BufferedImage from "by-copy" to "by-reference". Made the custom BufferedImage copying code path occur lazily upon a call to TextureData.getBuffer(). Added support for the GL_EXT_abgr extension but disabled the code path currently as it appears there may be bugs in its support on some drivers. Added computation of row width for all BufferedImage types with help and suggestions from Chris Campbell. Improved handling of some BufferedImage types like TYPE_INT_ARGB and TYPE_4BYTE_ABGR. Added Texture.updateSubImage() taking a source rectangle as well as a destination coordinate. Wrote TestSubImage test to show use of the new API which exercises all BufferedImage types. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@192 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added JOGL / JOAL applet test and revised documentation for JOGLKenneth Russel2006-12-223-3/+94
| | | | | | | applet test slightly git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@191 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Updated JOGL applet test and documentation for new factoring ofKenneth Russel2006-12-221-6/+6
| | | | | | | gluegen-rt classes into a separate jar git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@190 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Include lib directory in source bundlesKenneth Russel2006-12-221-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@189 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Updated joal-demos.jar for bug-fixed SingleStaticSource (not really Kenneth Russel2006-12-221-0/+0
| | | | | | | used, but just in case somebody tries to use it) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@188 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added JOGL/JOAL applet testKenneth Russel2006-12-215-2/+60
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@187 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added applettest-joal-next containing mixed JOGL/JOAL appletKenneth Russel2006-12-202-0/+26
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@186 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Fixed applettest-next to include gluegen-rt.jar in required jarsKenneth Russel2006-12-201-3/+3
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@185 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Test page for "next" version of JOGL -- not functional yetKenneth Russel2006-12-192-0/+41
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@184 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Fixed Issue 213: Expose GLCaps from GLDrawable Kenneth Russel2006-11-191-0/+2
| | | | | | | | | | | | | | | | | | | Added getChosenGLCapabilities() to the GLDrawable interface. Implemented on Windows, Unix and Mac OS X platforms with various techniques. Attempts to provide correct answers in all cases, even when the GLCapabilitiesChooser mechanism is not supported. Required addition of new platform-specific Java code in most cases to either re-convert existing PIXELFORMATDESCRIPTORS / XVisualInfos, or to query the pixel format or visual chosen for drawables like pbuffers for which the chooser mechanism is not (yet) implemented. Tested on Windows, Solaris/x86, and Mac OS X with on-screen, off-screen and pbuffer drawables. (Full support for the Java2D/JOGL bridge is not yet in place; the answer returned from the GLJPanel in this case is currently the default GLCapabilities, and it is likely that "external" GLDrawables will return null.) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@183 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added link to Chris Campbell's blog entry on 2D/3D mixingKenneth Russel2006-10-161-0/+3
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@182 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Placed Particle Engine demo on jogl-demos web pageKenneth Russel2006-06-011-7/+0
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@181 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Turned down max FPS to 60 to avoid swamping CPU and locking out Kenneth Russel2006-05-291-1/+1
| | | | | | | | WToolkit thread in particular when Java2D OpenGL pipeline and Java2D/JOGL bridge are activated git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@180 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Minor adjustments to HTML for demosKenneth Russel2006-05-281-66/+66
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@179 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Incorporated Particle Engine demo contributed by Ben Chappell. Added Kenneth Russel2006-05-2810-0/+794
| | | | | | | | description and launch link to jogl-demos web page, currently commented out in HTML until JSR-231 beta 5 is released. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@178 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added links to JOGL ports of OpenGL Red Book examples and NeHeKenneth Russel2006-03-311-1/+10
| | | | | | | examples, and to Killer Game Programming including chapters on JOGL git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@177 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Updated package name for JOGLAppletLauncher for JSR-231 beta 3Kenneth Russel2006-02-171-2/+2
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@176 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Added picking example from Thomas BladhKenneth Russel2006-02-161-0/+265
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@175 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Issue number:gfxadmin2006-02-161-3/+3
| | | | | | | | | | | | | | | Obtained from: Submitted by: Travis Reviewed by: Fixing minor build error due to recent GLCapabilities API renaming. Modified Files: src/demos/misc/GLCapsTableDemo.java git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@174 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Renamed "offscreen" capability bits in GLCapabilities to "pbuffer" Kenneth Russel2006-02-161-2/+2
| | | | | | | | capability bits to be more explicit about how they are to be used; no objections from JSR-231 expert group git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@173 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
* Intermediate checkin for FBO support in Java2D/JOGL bridge. Needed to Kenneth Russel2006-02-051-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | keep track of server-side OpenGL objects, like textures and display lists, created by the end user to preserve the illusion of independent contexts even though they will all share textures and display lists with the Java2D OpenGL context in order to access its FBO. Added GLObjectTracker class to track creation and destruction of these objects and to support cleanup when the last referring context has been destroyed. Modified GLContextShareSet to create and install GLObjectTrackers when necessary and GLContext to ref and unref tracker appropriately. Changed GlueGen's JavaPrologue and JavaEpilogue directives (and their documentation) to perform argument name substitution. Wrote documentation section on argument name substitution and specified behavior for primitive arrays (converts to string "array_name, array_name_offset" in substitution). Rephrased GlueGen's RangeCheck directives in terms of JavaPrologue directives and deleted old specialized code. Fixed bug in handling of VBO support in GLConfiguration when JavaPrologue was present for affected functions. Added JavaPrologue and JavaEpilogue directives to all existing OpenGL routines creating server-side objects (though it's possible some were missed) to call GLObjectTracker when necessary. Added RangeCheck directives for these routines as well. Worked around bug in JOGL demos where shutdownDemo() was being called more than once. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@172 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4