| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
(compatibility for 10.5)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is the default.
The following 5 GDI functions have their 'wgl' counterparts
which 'shall' being used in case the OpenGL DLL is being loaded dynamically.
(So reads the documentation & FAQ).
This seems to be required only in case the std. opengl32.dll is not being used.
This use case is called GDI/ICD.
If using a non std. OpenGL DLL, is called MCD.
We dynamically load the OpenGL DLL and fetch the address pointer.
Since we generally use the std. opengl32.dll, our use of the GDI callbacks
seems to be legal. However, to test using the 'wgl' method WGLUtil is introduced.
You can test using the 'wgl' variants
by defining the property: 'jogl.windows.useWGLVersionOf5WGLGDIFuncSet'.
In case you have troubles, ie crashes within pixelformat setup etc,
it might be interesting if this may impact your behavior.
- ChoosePixelFormat(long, PIXELFORMATDESCRIPTOR)
- DescribePixelFormat(long, int, int, PIXELFORMATDESCRIPTOR)
- GetPixelFormat(long)
- SetPixelFormat(long, int, PIXELFORMATDESCRIPTOR)
- SwapBuffers(long)
|
| |
|
|
|
|
|
|
|
|
|
| |
- attributes +NSOpenGLPFANoRecovery +NSOpenGLPFAAccelerated
- use SurfaceUpdateListener() to notify layer
- swapBufferImpl() adapt to 0038e2d41825c22bdd18a7b86a8229a3fab674a3
- pbuffer: don't enforce POT tex-size to surface size, but pbuffer only
- FIXME: Check POT pbuffer/tex-size for X11/Win32/.. !
-
|
|
|
|
| |
atomic.
|
|
|
|
|
|
|
|
| |
flags (-d32/-d64) ; glxext.h uses 'gl-64bit-types.h'
Cleanup dependencies and linker args
- JOGL/NEWT: remove Xxf86vm dependency
- NativeWindow Solaris: Use std 'Xinerama' and 'xf86vmode'
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(GearsES1/ES2)
rename/reloc:
- javax.media.nativewindow.util:
DimensionReadOnly -> DimensionImmutable
PointReadOnly -> PointImmutable
RectangleReadOnly -> RectangleImmutable
unified 'immutable' name as used within jogamp already
- remove array handler from public API
com.jogamp.opengl.util.GL*ArrayHandler -> jogamp.opengl.util.GL*ArrayHandler
- GLArrayData: Clarify method names
getComponentNumber() -> getComponentCount()
getComponentSize() -> getComponentSizeInBytes()
getElementNumber() -> getElementCount()
getByteSize() -> getSizeInBytes()
- FixedFuncPipeline: Moved def. array names to GLPointerFuncUtil
enhancement:
- GLArrayDataServer: Add support for interleaved arrays/VBO
- GLArrayData*.createFixed(..) remove 'name' argument (non sense for fixed function)
- PMVMatrix:
- one nio buffer
- removed 'Pmv' multiplied matrix
- removed 2x2 cut down 'Mvi' normal matrix (use 4x4 Mvi)
-
tests:
- RedSquare -> RedSquareES1/RedSquareES2
- Gears ES1 fixed + ES2 added. Both work properly and share common Gears VBO construction
- Added TestMapBuffer01NEWT, testing glMapBuffer
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
separation ; android cleanup
remaining all-in-one jnlp's / jars:
jogl-all-awt.jnlp -> jogl.all.jar
jogl-all-noawt.jnlp -> jogl.all-noawt.jar
jogl-all-mobile.jnlp -> jogl.all-mobile.jar
native for all above: jogl-all-natives-linux-amd64.jar
jogl.all-android.apk jogl.all-android.jar
more may follow for each supported platfrom
++++
- newt: proper 'driver' separation
- all drivers reside now in jogamp.newt.driver.*
- remove intptr.cfg / use gluegen's
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
.. (remove local copy)
- Use them for gluegen code generation
- Use them for native compilation (cc)
|
|
|
|
|
|
|
|
|
|
| |
Add Java source zip file.
Query git branch/sha1 and use it if not set and tools are available.
This shall improve tracking of manual generated binaries/bundles.
Add Java source zip file. Contains all Java source code (incl. generated ones) enhancing
IDE usage, where API doc and source browsing of libs is supported (NB/Eclipse/etc).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If GL_ARB_debug_output is not available, but GL_AMD_debug_output exist, fallback to the latter,
offering generic aliased methods translating the delta (AMD category <-> ARB source/type).
Generic aliased methods reside in GLContext*
Enable/Disable via GLContext and GLAutoDrawable.
To enable the GLDebugOutput feature GLContext.enableGLDebugMessage(true)
or GLContext.setContextCreationFlags(GLContext.CTX_OPTION_DEBUG)
shall be called _before_ context creation via GLContext.makeCurrent()!
In case GLAutoDrawable is being used,
GLAutoDrawable.setContextCreationFlags(GLContext.CTX_OPTION_DEBUG)
shall be issued before context creation via GLContext.makeCurrent()!.
After context creation, the GLDebugOutput feature may be enabled or disabled
at any time using this method.
Verify both unit tests for usability.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The cc task will always re-link, even if no source files are built.
This commit wraps an uptodate task around cc to prevent this, so
the libraries will only be rebuilt now if a source file changes.
This commit also moves library symbol stripping into the same
uptodate task, so it only happens if a library is built (previously
the libraries were always stripped).
|
|
|
|
|
|
|
| |
The path to FixedFuncHook.class didn't get changed in the recent
package move, which made the dependency checking wrong in
the java.generate.composable.pipeline.custom.check.glfixfunc
target.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
jogamp.<module> (2/2) - edit files
- com.jogamp.opengl.impl -> jogamp.opengl
- com.jogamp.opengl.util.glsl.fixedfunc.impl -> jogamp.opengl.util.glsl.fixedfunc
- com.jogamp.nativewindow.impl -> jogamp.nativewindow
- com.jogamp.newt.impl -> jogamp.newt
This sorts implementation details from the top level, ie skipping the public 'com',
allowing a better seperation of public classes and implementation details
and also reduces strings.
This approach of public/private seperation is also used in the OpenJDK.
|
|
|
|
| |
NEWT WindowsWindow GetRelativeLocation() native implementation to GDI as well.
|
| |
|
|
|
|
| |
sha1) and 'jogl.build.branch' (git branch) to the JARs Manifest files, artifact.properties and deployment README.txt ; Fixed some URLs and text ; Removed the notion of RI and non RI versions, since from now on we reference a release version via: module-base-version, git sha1 and hudson build number
|
|
|
|
|
|
|
| |
- Adding gluegen-gl.jar for GlueGen GL compile time parts.
- Removed dead build-gluegen.xml
- Adding com/jogamp/gluegen/runtime/opengl/* to jogl core
- Moved gluegen gl part to jogl/classes
|
| |
|
|
|
|
|
|
|
| |
Reduce (performance/footprint) overhead of ProcAddressTable recreation,
instead use a hashmap (major, minor, profile) -> ProcAddressTable.
Remove GL2ES12 implementation profile, redundant.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Update header:
- GL/glext.h to khronos 2010-08-03
- GL3/gl3.h to khronos 2010-08-03
- Move platform code to
GL/glplatform.h
GL3/glplatform.h
- Unify 64bit typedefs: gl-64bit-types.h
- Move GL 3.[123] and 4.[01] complete subsumed extension
enums and functions into their extension spec and just reference them.
This ensures proper extension availability
via lower OpenGL profiles, hence a proper GL2GL3 interface.
- GL3/GL4 cleanup:
- make-glextension-depignore.sh:
determine required GL version for extensions
for proper positioning, ie GL2GL3 or GL3 or GL4
via gluegen IgnoreExtension commands.
- use ARB_ES2_compatibility for common GL2ES2 methods,
if available
- consolidated gl2-gl4 subsumed extension to gl-common.cfg
- Missing GL3/GL4 Functions:
glMultiDrawElementsBaseVertex
glDebugMessageCallbackARB
glDebugMessageCallbackAMD
- TODO (new feature integration):
- ARB_ES2_compatibility / ARB_get_program_binary for com/jogamp/opengl/util/glsl, ie
- store binaries com/jogamp/opengl/util/glsl/sdk/CompileShader*
- query supported binary formats (enums ?)
- optional prio binaries
- ARB_ES2_compatibility, if available GLES2/GL2ES12 would be available
- ARB_separate_shader_objects for com/jogamp/opengl/util/glsl, ie
- swizzle vertex/fragment shader in programs
- ..
|
|\ |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
quite a while ago)
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GLAutoDrawable: dispose() calls only with created context.
- Using the EGL approach of DynamicLookupHelper,
now generalized in abstract GLDynamicLookupHelper,
DesktopGLDynamicLookupHelper and EGLGLDynamicLookupHelper.
The implementation of these are self contained.
- Sharing common code.
- Unifying implementation and binding loading,
as well as the function lookup within the impl libs.
- Removed DRIHack, since its no more required
due to the new DesktopGLDynamicLookupHelper.
- Removed compile time link to GL and GLU libs
- Removed redundant library OS functions from X11/WGL
bindings, GlueGen's common code is being used now.
- GLAutoDrawable: dispose() calls only with created context.
This cleans up stack traces in case of eventual bugs,
where context creation is not successful.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
+++++
Changed NEWT NativeWindow creation contract
Original contract:
(1) A native window was created as soon as possible,
ie when NEWTFactory.createWindow(..) was called - if possible.
(2) A valid native window has to be created at least after setVisible(true)
has been called.
Problems:
Not all implementation are able to create the native window that early,
but at setVisible(true) only (e.g: KD and EGL).
Due to window parenting especially the new AWT/NEWT parenting,
the native window can only be created in case the parent native window is valid.
New contract:
(1) A native window is created at setVisible(true),
if it's a top level window or the native parent window is valid.
(2) A valid native window may not be created after setVisible(true)
has been called.
Subsequent setVisible(true) calls shall be made in case
the creation has not been done yet.
This is demonstrated in GLWindow.display() for example.
The new contract implements a lazy native window creation.
+++++
AWT/NEWT Parenting
- HierarchyListener and ComponentListener ensure that the NEWT child window
will be setVisible according to the AWT parent window.
- Lazy native window creation relaxes requirements to the parent window's state.
- Attachment of the child window and setVisible() may be called
after NEWT child window creation.
- GLWindow supports NEWT child window creation directly
The test case TestParenting01AWT.java reflect this new contract
and demonstrates more simplified and more flexible use cases.
+++++
NEWT Fixes:
- All NEWT implementation's native code method names end with 0.
- GLWindow: don't issue the actual 'init'/'display' call to GLEventListeners
in case the window is not visible.
- NEWT setSize/setPosition:
if native-window
call native-window action and let the attributes being set by
the feedback call, which issues more action, ie RESIZE.
else
set the attributes directly, no feedback call/action is necessary.
+++++
X11 Fixes:
- X11GLContext MakeContextCurrent:
Use MakeCurrent in case write and read drawable are equal,
otherwise SEGV happens on ATI with heavy multithreading involved!
Even XLockDisplay and XSync didn't help here ..
- X11GLXDrawableFactory shared resource:
Removed the resource holder thread to simplify code,
hence proper release is no more desired and it could become a cause for deadlock.
- Moved XInitThreads() from NEWT X11Window -> NativeWindow X11Util,
since NativeWindow is loaded first (essential for XInitThreads())
and it is the more basic lib.
- Made call to XInitThreads() conditional, ie it's spared if
AWT could be used - which causes SEGV .. (AWT bug). See X11Util.java
+++++
JOGL Fixes:
- GLProfile.isAWTAvailable() -> NativeWindowFactory.isAWTAvailable()
- GLProfile.isAWTJOGLAvailable() -> GLProfile.isAWTAvailable()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Property change to allow multilib with same property file:
- windows.cg.lib -> windows.cg.lib32 windows.cg.lib64
- x11.cg.lib -> x11.cg.lib32 x11.cg.lib64
Fix windows build/test scripts ..
++++
- mingw linker option: --enable-auto-import
- mingw now links against DLLs not libs,
due to a runtime error while linking against JAWT
++++
x86: Using mingw 20100514, gcc 4.5.0
- clean
- passed all junit.run tests
x86_64: Using mingw-w64-bin_x86_64-mingw_20100515_sezero.zip, gcc 4.4.5 20100513
- clean
- passed all junit.run tests
|
|
|
|
|
|
|
|
|
|
| |
x86: Using mingw 20100514, gcc 4.5.0
- clean
- passed all junit.run tests
x86_64: Using mingw-w64-bin_x86_64-mingw_20100515_sezero.zip, gcc 4.4.5 20100513
- clean
- passed most junit.run tests, still buggy
|
| |
|