aboutsummaryrefslogtreecommitdiffstats
path: root/make/build-nativewindow.xml
Commit message (Collapse)AuthorAgeFilesLines
* Changed NEWT NativeWindow creation contract - AWT/NEWT Parenting - Misc FixesSven Gothel2010-05-211-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +++++ 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()
* GlueGen/JOGL Windows x86 x86_64 BuildsSven Gothel2010-05-161-2/+13
| | | | | | | | | | 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
* Xorg libs/headers are in std FS location /usrSven Gothel2010-04-301-4/+4
|
* - JAR Manifest: Trusted-Library: trueSven Gothel2010-04-281-14/+13
| | | | | | | | | | | - Added JAR Manifest to native libs as well, otherwise our chain would become mixed code. - JNLP: Set JogAmp community as vendor .. - JOGL Windows hack: WindowsWGLContext.java - temporary removed the ARB CreateContext path for Windows, due to a bug in this implementation.
* JOGL GL4 preperation (cont):Sven Gothel2010-04-201-13/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - All available OpenGL versions (native/platform) are verified at GLProfile initialization and can be queried .. A mapping of major,compat -> major,minor,options is created. - Removal of temp context creation, when creating a context. This was necessary to query general availability of ARB_create_context. Due to the shared context of X11GLXDrawableFactory and WindowsWGLDrawableFactory, this is no more necessary. Due to the version mapping, the ARB_create_context paramters are known. - NativeWindow X11Lib: Added X11ErrorHandler, throwing a RuntimeException. Necessary to catch BadMatch .. etc X11 errors, eg for glXCreateContextAttribsARB Hence all X11 calls are covered now. - X11DummyGLXDrawable needs to use an own Window, otherwise GLn n>2 fails - Flattening the desktop GL* implementation, all use GL4bcImpl, which reduces the footprint dramatically. - GL*Impl.isGL*() (desktop) utilizes the GLContext.isGL*(), hence the results reflect the actual native context version. - GLContextImpl makeCurrent/create: Added workflow documentation, clarified code, defined abstract methods to have a protocol. - Removed moved files (from here to gluegen), see gluegen a01cb3d59715a41153380f1977ec75263b762dc6 - NativeLibLoader -> <TYPE>JNILibLoader - Fixed Exception Handling (as in gluegen bce53b52c8638729750c4286dbc04cb14329fd34), ie removed empty catch Throwable .. - GLContext.setSwapInterval(): Nop in offscreen case, otherwise X11IOError (NVIDIA Bug) Test: Tests - Junit - demos.gears.Gears - demos.jrefract.JRefract Platforms - Linux 64/32 ATI/NVidia - MacOsX - Windows (virtualbox 3.1.6, offscreen failed) TODO/BUGS: - FIXME ATI GLn n>2 with AWT, can't make context current, works well on NVIDIA though - FIXME GL3GL4: Due to GL3 and GL4 implementation bugs, we still choose GL2 first, if available! - Add GL 3.3 to GL3/gl3ext.h - Add GL 4.0 to GL3/gl3ext.h and fix the GL3/GL4 seperation - Rename jogl.gl2.jar -> jogl.gldesktop.jar (as done with it's native lib already)
* Further ATI (fglrx) X11Display bug workaround/cleanupSven Gothel2010-04-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - See https://bugzilla.mozilla.org/show_bug.cgi?id=486277 - Calling XCloseDisplay occasionally leads to a SIGSEGV, even thought the reference is valid and OK. Workaround is not to close any X11Display, but to hold them stashed and reuse them. Since we already pipeline all X11Display's via Nativewindow's X11Util, an added referenceCounter and a global active/passive list solved this problem. This workaround is only active in case 'isVendorATI()'. NEWT/NativeWindow X11: - Let XIOErrorHandler and invalid display references fail hard with FatalError, otherwise we won't see the stack trace - and those bugs are indeed fatal. NativeWindow X11: - Install XIOErrorHandler, which stays active. - X11Util.X11Display: - Add reference counter - Add global active/passive list. Passive if reference count == 0 and marked as 'un-closeable' (-> ATI). Reusing passive members when create a new display. - JOGL: - Use DeleteLocalRef() calls to free temp NIO buffer in manual *Copied implementation. - GLDrawableFactoryImpl: Be serious about the shutdown() semantics - *GraphicsConfiguration: - Fix the invalid Onscreen/PBuffer/Pixmap determination (X11/EGL/WGL) - Just return null if not valid - X11GLXGraphicsConfigurationFactory - FBConfig - Determine recommendedIndex properly .. - Don't bail out if a FBConfig is invalid .. - Use Chooser in case nothing is recommended .. - X11OffscreenGLXDrawable fixes bugs: - wrong (int) cast of parent window in XCreatePixmap call - setting display to zero too early in destruction, ie before XCloseDisplay - X11GLXDrawableFactory is using [singleton] shared dummy resources for - Screen, Drawable and Context which are utilized in case they are needed .. They are removed at shutdown call - GLXVersion gathering in GLXUtil now .. - DefaultGLCapabilitiesChooser: Respect PBuffer selection Tests: - Add DrawableFactory shutdown() - Add various Offscreen Capabilties - Add Offscreen and non-pbuffer case - JUnit Passed (Linux64bit: NVidia/ATI) - demos.jrefract.JRefract passed (Linux64bit: NVidia/ATI)
* *** Now Using Apache-Ant-1.8.0 ***Sven Gothel2010-04-101-0/+2
| | | | | | | | | | | | | | | | | | | | Cleanup: - Adding Javac includeAntRuntime argument (false whenever possible) - Clear junit results folder before testing - <ant ..> tasks, use inheritRefs="true" inheritAll="true" whenever possible for better performance and consistency (no duplicate property names). The JOGL build -> build-<component> tree is clean in this respect. junit.run: Test*NEWT* Emulation of junit task, due to the fact that we have to place invoke our MainThread class first (-> MacOSX). Utilizing Ant-1.8.0 and ant-contrib-1.0b3 (loops, mutable properties). Fixed NEWT tests: - No more println .. using Assertions .. - Offscreen produces 2 files correctly (Linux/NVidia, OSX/NVidia, Win32/Emulation)
* Cleanup ant files, intro: build-common.xml used for all targets; Extracting ↵Sven Gothel2010-04-091-189/+59
| | | | build-junit.xml
* Added doc/deployment:Sven Gothel2010-04-081-22/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JOGL-JAR-BUNDELING.txt A first FAQ about the (new) JAR partitioning. lstjars/lstjars.linux_amd64-20100406.log A first deployment payload measurement in kBytes :) New JAR Partitioning: All-In-One (*all*): - with AWT - without AWT See JOGL-JAR-BUNDELING.txt Atomic: See JOGL-JAR-BUNDELING.txt - Removed property setup.noall, since the *all* targets are mandatory now. Currently - Added gl4 part (still empty) - Fixed make/lstjars.sh and etc/profile.jogl (new JAR bundles) - Fixed make/lstjars.sh to produce JAR and PACK200 numbers, and using the *all* bundles if possible. MacOsX: - Fix missing refactoring in src/newt/native/MacWindow.m - Adding missing NSWindowDelegate protocol to NewtMacWindow as mandatory since 10.3.6 Misc: - Applied: 'gluegen.cpptasks.striplibs' to all native libraries. - Use path.seperator (ant) and system.env.library.path (gluegen), for junit runs.
* final large refactoring to move to com.jogamp.*.Michael Bien2010-03-281-12/+12
|
* refactoring due to gluegen changes.Michael Bien2010-03-271-1/+1
| | | | - renamed com.sun.gluegen.runtime -> com.jogamp.gluegen.runtime.
* build should use gluegen.root property where possible.Michael Bien2009-11-291-5/+5
|
* Allow custom user gluegen.compiler.xml ; NEWT: Example ↵Sven Gothel2009-10-021-4/+1
| | | | lib/gluegen.compiler.intelgdl.xml
* Gluegen:Sven Gothel2009-07-311-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | - Fix array element type name and const qualifier JOGL: - GL3: Set ArgumentIsString for GL3.1 methods - JAR file creation: Add 'filesonly' option - GLU: Static check of available impl., better fallback for GL2 without GLUgl2. - WGL: (Performance + Java2D/GL FBO works again) - Refactor WGL_ARB_pixel_format's HDC -> GLCapabilities: HDC2Caps - Revert change where we always create a dummy drawable/context for WGL selection (HDC2Caps). In case of no multisampling, use PFD2Caps only. - Update config using HDC2Caps (WGL_ARB_pixel_format) after context creation, if not done already -> updateCapabilitiesByWGL(). - profile.jogl: Add debug jars
* NativeWindow: noNativeAWT if nodesktopsg2158892009-07-281-2/+10
|
* Cleanup ..sg2158892009-07-281-22/+9
|
* Add Custom NativeWindow Type 'BroadcomEGL' ↵sg2158892009-07-271-12/+3
| | | | (-Dnativewindow.ws.name=BroadcomEGL): 1st Draft of supporting broadcom's proprietary EGL mapping
* Merge branch 'MIPS_PORT' of ssh://[email protected]/jogl~jogl-git ↵Morris Meyer2009-07-271-1/+1
|\ | | | | | | into MIPS_PORT
| * Fix: Add gluegen.cpptasks.detect.os callsg2158892009-07-261-1/+1
| |
* | mips changesMorris Meyer2009-07-271-2/+0
|/
* Add: Extended support for CVM crosscompile:sg2158892009-07-241-88/+116
| | | | | | | | | | | | | | | | | | | - Clean up X11 dependency - NativeWindow: - Seperate X11 out of core. - Add nativewindow.x11.jar and nativewindow.x11.cdc.jar - Newt: - Seperate X11,win,osx out of core. - Add newt.x11.jar, newt.win.jar, newt.osx.jar and the CDC variants Fix: External Context & Drawable (X11 and Windows) - Properly fetch current context values (ctx, display, drawable, ..) - Create GraphicsConfiguration based on the given pixelformat/FBConfig Fix: Java2D OpenGL Usage - Using the external context as shared for the external drawable - JAWTUtil: Skip locking in case of OGL-Flush-Queue - TODO: Windows FBO still does not work .. (X11 is fine)
* Fix CDC JAR unificationCDC_CVM_Integrationsg2158892009-07-151-1/+4
|
* Build CDC named JARs for CVM in default build, no more specialized build ↵sg2158892009-07-151-0/+8
| | | | necessary.
* Add: Extended support for CVM:sg2158892009-07-121-20/+34
| | | | | | | | | | | | | | | | | | | | | | | | - 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
* - Fix: X11 locking Sven Gothel2009-06-181-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current thread default display or the given display is being used, hence it is no more required to use a ToolkitLock for X11 without AWT. Removed X11 ToolkitLock in case of X11 without AWT, which is being detected with the absence of the classes java.awt.Component _AND_ javax.media.nativewindow.awt.AWTGraphicsDevice or with the system property java.awt.headless=true Only in the Java2D/Swing case, one 'leaking' Display is created within canCreateGLPbuffer(). - Workaround for Hotsport bugs #4395095, #6852404 4395095 JNI access to java.nio DirectBuffer constructor/accessor 6852404 Race condition in JNI Direct Buffer access and creation routines - Added build.xml -Dbuild.noarchives=true property to skip the time consuming creation of zip archives. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1988 232f8b59-042b-4e1e-8c03-345bb8c30851
* Thanks to Sven's changes to make each platform build a platform-Kenneth Russel2009-06-181-406/+0
| | | | | | | | | | independent jogl.jar, the "dist" target can now be completely eliminated from the various build.xmls. Removed this to achieve a significant simplification. The nightly build scripts now take care of the needed copying. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1984 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added generation of version.txt files to normal build paths of jogl,Kenneth Russel2009-06-171-12/+17
| | | | | | | | nativewindow, and newt. Fixed detection of whether or not RI build is in progress and thereby format of version number. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1981 232f8b59-042b-4e1e-8c03-345bb8c30851
* More build fixes for nativewindow and Newt on solaris-sparcv9 and solaris-amd64Kenneth Russel2009-06-171-2/+2
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1972 232f8b59-042b-4e1e-8c03-345bb8c30851
* Build fixes for nativewindow and Newt on solaris-sparcv9 and solaris-amd64Kenneth Russel2009-06-171-0/+8
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1971 232f8b59-042b-4e1e-8c03-345bb8c30851
* Steps toward revamping the dist build. Changed individual builds toKenneth Russel2009-06-171-0/+6
| | | | | | | | | | | | | | produce the Java Web Start native library jar file, [project]-natives-[os.and-arch].jar, and the top-level build to produce the developer binary archive, jogl-[version]-[os.and.arch].zip, as well as the source archive, jogl-[version]-src.zip. (This was only possible thanks to Sven, who made all of the platforms' Java-level binaries identical.) More work coming to simplify the dist target and redo the associated nightly build scripts. Minor documentation updates; more needed. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1970 232f8b59-042b-4e1e-8c03-345bb8c30851
* Refactored version number specifications for all sub-components likeKenneth Russel2009-06-161-41/+22
| | | | | | | | | | JOGL and Newt into make/versions.xml. Cleaned up and simplified jar creation targets in build-jogl.xml, build-nativewindow.xml, and build-newt.xml. Fixed nativewindowRIversion, which was incorrectly referring to VERSION instead of only BASEVERSION. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1968 232f8b59-042b-4e1e-8c03-345bb8c30851
* Copied JOGL_2_SANDBOX r1957 on to trunk; JOGL_2_SANDBOX branch is now closedKenneth Russel2009-06-151-0/+1348
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1959 232f8b59-042b-4e1e-8c03-345bb8c30851