aboutsummaryrefslogtreecommitdiffstats
path: root/make/config/jogl/glx-CustomJavaCode.java
Commit message (Collapse)AuthorAgeFilesLines
* Bug 888 - Validate CPU Runtime Performance: ↵Sven Gothel2013-11-041-0/+22
| | | | | | | | | | | | | | | | | | | | X11GLXGraphicsConfiguration.GLXFBConfig2GLCapabilities(..) X11GLXGraphicsConfiguration.GLXFBConfig2GLCapabilities(..) ran over all FB configs and for each it grabbed native config values separately. Fetching them in bulk mode saves around 7% of this function's cost. Also reuse XRenderPictFormat instance for 'XRenderDirectFormat XRenderFindVisualFormat(..)' call, saving a few NIO creation cycles w/ StructAccessor. Biggest savior is X11GLXGraphicsConfigurationFactory.chooseGraphicsConfigurationFBConfig()'s fast path w/o chooser and usable 1st FBConfig. Here we only issue 'GLXFBConfig2GLCapabilities(..)' on the first valid entry. Test w/ 50 X11GLXGraphicsConfigurationFactory.chooseGraphicsConfigurationFBConfig() invocations: - pre change: 1.708 ms - post change: 650 ms Time is no spent almost solely on native glXChooseFBConfig (546ms).
* GLX: Put native ByteBuffer to native-order in 'glXGetVisualFromFBConfig' and ↵Sven Gothel2013-05-071-9/+5
| | | | minor edits (final, same 'nativeOrder()' call style)
* GLX/GLXExt Robustness: Use NIODirectOnly for all bindings. For these ↵Sven Gothel2012-10-301-25/+31
| | | | internal APIs, critical array is not required, hence redundant.
* Fix: GLX exception message / sorted importsSven Gothel2011-01-311-1/+1
|
* Fix: Locking/Threading; Common IntIntHashMap and Buffers; Fix: ↵Sven Gothel2010-06-101-9/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | glMap*Buffer*; GLX/WGL/CgGL: All runtime dynamic; Misc .. TODO: Compile and test on MacOSX .. Fix: ===== Multithreading/Locking: See jogl/doc/Implementation/MultiThreading.txt - Locking layer is not platform agnostic, ie GLContextImpl, GLDrawableImpl, .. and NEWT: Window/Display - No more use of JAWT global lock necessary, removed. - No need for X11 Display lock, on the contrary, this made the NV driver hang. - Use common window/surface lock - All NativeWindow surfaceLock's are recursive now glMapBuffer: If size is 0, don't do cont with the native call. glMapBufferRange: Fix capacity. glNamedBufferDataEXT: Track the size. glMapNamedBufferEXT: Manual impl. - use the tracked size glXGetVisualFromFBConfig, glXChooseFBConfig, glXChooseVisual: Instead of ignoring and implement a renamed version (*Copied), we just use ManualImplementation for the proper copy-result code. DesktopGLDynamicLookupHelper: Initialize _hasGLBinding* attributes in the determing loadGLJNILibrary() method, which is called by super(). Otherwise static init will overwrite them after the super() call. X11GLXDrawableFactory: Don't release anything at shutdown (removed sharedContext.destroy()), since this caused a freeze/SEGV sometimes. Fixed NEWT's reparentWindow() functionality incl NewtCanvasAWT usage. - Native: if not visible, don't focus, etc - NewtCanvasAWT: Use the container size to start with - Run the command on the EDT Using GlueGen's new DynamicLibraryBundle utility: - X11, Windows and MacOSX OpenGL adapted to DynamicLibraryBundleInfo. - X11GLXDynamicLookupHelper -> X11GLXDynamicLibraryBundleInfo - Remove all path from lib names. - GL order: libGL.so.1, libGL.so, GL - shallLinkGlobal: true -> to server some 'old' DRI systems -> http://dri.sourceforge.net/doc/DRIuserguide.html - shallLookupGlobal: false - Try both : glXGetProcAddressARB and glXGetProcAddress - Using bootstrap: GLX.glXGetProcAddress(long glxGetProcAddressHandle, String glFuncName) Found the issue with LIBGL_DRIVERS_PATH, ie if not set no valid GL instance can be found (ie ATI fglrx/DRI). This may happen if using a differen user than the desktop user for whom the env var is set within some /etc/X11/Xsession.d/ script. Enhancements: ============= GLBufferSizeTracker: Use IntIntHashMap and add DirectState size tracking. GLBufferStateTracker: Use IntIntHashMap. GLStateTracker: Use IntIntHashMap. GLDynamicLookupHelper: More generic (global loading/lookup and GetProcAddress function name list), remove redundant code. FIXME: MacOSXCGLDynamicLookupHelper: - Not tested - Not using NSImage lookup anymore as recommended by OSX API Doc, so dlsym is used always (to be tested) WindowsWGLDynamicLookupHelper: - Not tested GLX/WGL/CgGL is all runtime-dynamic as now, ie loaded and looked-up at runtime, no compile time dependencies to GL anymore, nor a need to specify CgGL. Split up WGL in GDI and WGL, to allow proper dynamic runtime linkage of OpenGL32 while using static binding to GDI32 NEWT events generated by native code are enqueued and not send directly. This should ease locking mechanisms .. if any are necessary. NEWT: More platform specific code moved to *Impl method, simplifying the generic code of the superclass and impl protocol. Cleanup: ========= Replace all InternalBufferUtil's with com.jogamp.common.nio.Buffers Removed all InternalBufferUtil's from repository Removed GLContextImpl notion of 'optimized' surface locking, where the surface gets unlocked during makeCurrent/release. This just makes no sense and would impact multithreading in a horrible way.
* modifications due to class movement in gluegen.Michael Bien2010-03-311-1/+1
| | | | updated joglversion files.
* changes due to BufferFactory -> Buffers renaming in gluegen.Michael Bien2010-03-291-2/+2
|
* refactoring due to gluegen changes.Michael Bien2010-03-271-1/+1
| | | | - renamed com.sun.gluegen.runtime -> com.jogamp.gluegen.runtime.
* Drop PointerBuffer.wrapNative2Java(..)Sven Gothel2010-03-191-1/+1
| | | | | | in favor of a simple PointerBuffer.wrap(..), due to the new semantics, ie internal integer/long presentation. Fixed the javame code in this regard.
* Add: Extended support for CVM:sg2158892009-07-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | - GLX, CGL, WGL - GL2ES12 desktop ES1 and ES2 common profile Cleanup JAR file seperation - New: jogl.cdcfp.jar (ALL for CVM/CDC) - New: setup.nogl2es12 (Allow GL2ES12 for CVM without gl2/gl3) - Clean dependencies of GLX, WGL, CGL (incl. for GL2ES12) - Only build supported JAR archive, ie if they are being build Fix GL2ES12: Only add impl. for ES1 and ES2 interface methods - Use new com.sun.gluegen.runtime.PointerBuffer, to support CVM - CVM and J2SE Java JAR archives are equal! - Well, the build form *everything* includes some empty directories in the cdcfp JAR archives though. - Removed last AWT dependency in MacOSX chain - GLDrawableFactory - com.sun.opengl.impl.macosx.cgl.MacOSXCGLDrawableFactory - com.sun.opengl.impl.macosx.cgl.awt.MacOSXAWTCGLDrawableFactory
* Copied JOGL_2_SANDBOX r1957 on to trunk; JOGL_2_SANDBOX branch is now closedKenneth Russel2009-06-151-0/+46
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1959 232f8b59-042b-4e1e-8c03-345bb8c30851