Skip to content
The Jenkins Controller is preparing for shutdown. No new builds can be started.
Success

Changes

Summary

  1. Auto GL profile selection; New GLReflection (refactoring of common (details)
  2. 3rd round cdcfp - compile clean. (details)
  3. - Using new config feature: 'IgnoreExtendedInterfaceSymbols <java class (details)
  4. Cleanup and partitioning of GLU (details)
  5. - New profile GL2ES12 (desktop) - Intersection of GL2 + GLES1 + GLES2 - (details)
  6. - Fixed rootrel.build usage, this works properly through gluegen, (details)
  7. JOGL refactoring: Refactored JOGL into 3 independent components. (details)
  8. Start moving javax.media.nwi -> javax.media.nativewindow (details)
  9. Continue moving javax.media.nwi -> javax.media.nativewindow (details)
  10. Continue moving javax.media.nwi -> javax.media.nativewindow (details)
  11. Movement of Capabilities class and chooseCapabilities functionality into (details)
  12. Changed a few Class.forName() calls to defer initialization to avoid (details)
  13. Fix: JAWTUtil has to JAWTNativeLibLoader.loadAWTImpl() as well. Use (details)
  14. EGL changes for device (details)
  15. Cleanup .. (details)
  16. NEWT: Native window parenting (X11: OK); AWTWindow external Frame OK (details)
  17. final large refactoring to move to com.jogamp.*. (details)
  18. code review (http://jogamp.org/bugzilla/show_bug.cgi?id=396): improved (details)
  19. - Fix: X11 locking The current thread default display or the given (details)
  20. final large refactoring to move to com.jogamp.*. (details)
  21. Auto GL profile selection; New GLReflection (refactoring of common (details)
  22. 3rd round cdcfp - compile clean. (details)
  23. - Using new config feature: 'IgnoreExtendedInterfaceSymbols <java class (details)
  24. Cleanup and partitioning of GLU (details)
  25. - New profile GL2ES12 (desktop) - Intersection of GL2 + GLES1 + GLES2 - (details)
  26. - Fixed rootrel.build usage, this works properly through gluegen, (details)
  27. JOGL refactoring: Refactored JOGL into 3 independent components. (details)
  28. Start moving javax.media.nwi -> javax.media.nativewindow (details)
  29. Continue moving javax.media.nwi -> javax.media.nativewindow (details)
  30. Continue moving javax.media.nwi -> javax.media.nativewindow (details)
  31. Movement of Capabilities class and chooseCapabilities functionality into (details)
  32. Changed a few Class.forName() calls to defer initialization to avoid (details)
  33. Fix: JAWTUtil has to JAWTNativeLibLoader.loadAWTImpl() as well. Use (details)
  34. Movement of Capabilities class and chooseCapabilities functionality into (details)
  35. - Fixing SPEC documentation for bindings JOGL and NativeWindow, lot's of (details)
  36. - Fix: X11 locking The current thread default display or the given (details)
  37. Refactored static initialization to let the JVM ensure it only runs (details)
  38. final large refactoring to move to com.jogamp.*. (details)
  39. JAWT package cleanup .. re adding accidently removed files (details)
  40. JOGL refactoring: Refactored JOGL into 3 independent components. (details)
  41. Start moving javax.media.nwi -> javax.media.nativewindow (details)
  42. Continue moving javax.media.nwi -> javax.media.nativewindow (details)
  43. Continue moving javax.media.nwi -> javax.media.nativewindow (details)
  44. JOGL Added OpenGL 3.0 and 3.1 support 3.0 as part of GL2 (extensions (details)
  45. Tested: - Linux / X11 / GL3 / GL2 / ES1 / ES2 - Using etc/profile.jogl (details)
  46. Fix: JAWTUtil has to JAWTNativeLibLoader.loadAWTImpl() as well. Use (details)
  47. Push custom loadLibrary handling down to NativeWindow (details)
  48. final large refactoring to move to com.jogamp.*. (details)
  49. code review (http://jogamp.org/bugzilla/show_bug.cgi?id=396): improved (details)
  50. Moving imported files to proper place (details)
  51. remove duplicated file while importing (details)
  52. Added keyNotFoundValue semantics, for primitve types it defaults to -1 (details)
  53. Importing files from JOGL (preserving history) (details)
  54. Fix Exception Handling .. (details)
Commit 5f7f9811971eb452ddd57316ed00552a774de0f8 by Sven Gothel
Auto GL profile selection; New GLReflection (refactoring of common relfections); Fixes

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1684 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 05135c584e578bc16bf2f47f47a9676842d3dcde by Sven Gothel
3rd round cdcfp - compile clean.

Re-adding cdcfp:
    com/sun/opengl/impl/glu/mipmap/*
    com/sun/opengl/impl/GLPbufferImpl.java

    Using 'BufferUtil.nativeOrder(ByteBuffer)'
    to set up the native byte order.
    'BufferUtil.nativeOrder' is now public.

    GLDrawableFactory:
        - removed 'hardcoded' awt attribute.

    Cleanup NEWT's AWT wrapping implementation.
        - NativeWindowFactory incooperates with the wrapping property.

    Bugs on X11/NEWT/AWT:
        - no events
        - deadlock at shutdown
        - deadlock if EGLDrawable with AWT get's locked

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1700 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit a2a218234b3d51a87577df5f4879bfe1917529c0 by Sven Gothel
- Using new config feature: 'IgnoreExtendedInterfaceSymbols <java class source file>' and get rid of manual 'Ignore' configs for common stuff in the base interfaces.

- Add: GLUnsupportedException:
    - Using new config feature 'UnsupportedExceptionType GLUnsupportedException'
    - GLUnsupportedException is used for anything 'UnsupportedOperationException'

- GLU:
    - GLU itself is no more abstract
    - GLU contains the tesselator implementation
        - name, return type, modifiers and arguments
    - createGLU(..)
        - operated by profile name now.
        - GLU itself will be used for GLES2

- Cleanup:
    - gluegen/GL configs ..

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1725 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 574e56f7ebf8b3fbfbf4754458dd718d3a1d0e32 by Sven Gothel
Cleanup and partitioning of GLU

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1728 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit c85c46713fcc6f9f5d4166273baed5705623e14d by Sven Gothel
- New profile GL2ES12 (desktop) - Intersection of GL2 + GLES1 + GLES2 - Common set of GLES1 + GLES2 - Utilized new 'ExtendedInterfaceSymbolsOnly' gluegen config

- DroppingUniqVendorExtension + 3DFX + APPLE
    - Some APPLE enumerates are manually provided!

- Removing of 'jogl.oswin.jar' - since it is redundant now!

- Proper partitioning of 'jogl.gl2' and 'jogl.gl2es12' for
    - x11, win and osx

- Profile selection/trial for e.g. GL2ES1 is now in the following order:
    1) GLES1
    2) GL2ES12
    3) GL2

- Footprint for all profiles below 1/2 MB,
    NEWT:
        ES1:     284 kB
        ES2:     280 kB
        GL2ES12: 332 kB
        GL2:     456 kB

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1729 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 707d6a7e4f027b75acc20df2769ba0e20f95681f by Sven Gothel
- Fixed rootrel.build usage, this works properly through gluegen, jogl-demos and this build. You can say -Drootrel.build=build-x86_64 for example.

- Fixed jogl-demos in regard to this changeset

- Gluegen
    - Fixed gluegen BuildComposablePipeline's 'getGL*' methods.
      Now they return 'this', otherwise the pipeline would be broken/removed.

    - Add BuildComposablePipeline CustomPipeline, which allows customized
      class composition with an interface (to be wrapped),
      prolog class and the downstream class.

    - Add GlueGen (incl. ant task) 'outputRootDir' to be able to set a
      top output root dir via ant / commandline.

- GL fixed function
    - Package 'javax.media.opengl.sub.fixed.*' defines some fixed function interfaces.
      This allows partitioning of custom implementation.

    - Using gluegen's new CustomPipeline to compose a GLFixedFuncIf implementation,
      using a GL downstream and a GLFixedFuncHookIf prolog.
      The latter implements the fixed functionality.
      Example is the GLFixedFuncImpl.
        gl.getContext().setGL( new GLFixedFuncImpl(gl, new FixedFuncHook(gl.getGL2ES2())) ) ;
      or
        gl.getContext().setGL( new GLFixedFuncImpl(gl, gl.getGL2ES1()) ) ;

   -  The example GLFixedFuncHookIf impl FixedFuncPipeline/
      can be instantiated with custom shader code.

- ES2 and all other interfaces only contain the original functionality,
  besides minor convenient data access methods.

- Fix: GL2ES2 createCompileShader() and createLoadShader() is moved to ShaderCode util class.

- Updated PMVMatrix

- Add: GLAutoDrawable.setContext() .. and all it's implementations
  Necessary to set a new GLContext.

- Add: GLContext getAttachedObject(int) and putAttachedObject(int, Object),
  to allow the user to attach application specific and TLS sensitive objects to the GLContext.

-

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1856 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit ae84ca16de6df46874af5180cc44fde99be8f708 by Sven Gothel
JOGL refactoring: Refactored JOGL into 3 independent components.

1 NWI - Native windowing interface
        Abstracts the the general NativeWindow interface and it's factory,
        incl the basic JAWT and Xlib toolkit.
        The latter was motivated to clean up the JOGL workspace,
        and to allow other to reuse this part.
        The generic core is nwi.core.jar, the AWT add-on is nwi.awt.jar.

    2 JOGL - The OpenGL mapping
        Further cleanup of the SPEC.
        All non OpenGL toolkits are relocated to NWI and NEWT.
        There is still openmax and the windows audio layer ..
        Another cleanup of the fixed function pipeline emulation.
        Moved utilities and implementations where they belong ..
        Removed GLUnsupportedException.
        Misc .. changes

    3 NEWT - The new windowing toolkit
        The generic NEWT, newt.core.jar.
        The JOGL and AWT modules are seperate, newt.ogl.jar newt.awt.jar.
        Their build can be switched off.

    The modules source and builds resides in their own directory.
    Because of their nature, they share the stub_includes, etc.
    Each module has it's own ant build script
        - build-nwi.xml
        - build-jogl.xml
        - build-newt.xml
    They can be build at once using build.xml as ususal,
    which just invokes the seperate build tasks.

    if rootrel.build=build, then the build location is
        jogl/build-nwi
        jogl/build-jogl
        jogl/build-newt
    and the sources are under
        jogl/src/nwi
        jogl/src/jogl
        jogl/src/newt

    Tested: jogl-demos, d4; Linux, MacOsX; Nvidia

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1868 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 2ad0030569b02f1c03b878e7f0bbf82206cfbb11 by Sven Gothel
Start moving javax.media.nwi -> javax.media.nativewindow

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1879 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 5aedd762c93d358fc4a7f6b88a769f559897d41f by Sven Gothel
Continue moving javax.media.nwi -> javax.media.nativewindow

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1880 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 2819734631c34307b472a5500ec97c88f23f6c22 by Sven Gothel
Continue moving javax.media.nwi -> javax.media.nativewindow

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1881 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit de83a317032a1383ca647596d462644d9f11bbd2 by Sven Gothel
Movement of Capabilities class and chooseCapabilities functionality into NativeWindowFactory introduced an undesirable dependence between the windowing toolkit, which can be replaced via NativeWindowFactory, and the library which implements the selection algorithm, for example OpenGL. This would prevent, for example, an easy SWT port of JOGL.

To fix this, refactored chooseCapabilities into new
GraphicsConfigurationFactory, the default implementation of which is
currently a no-op on X11 platforms, and which is provided by JOGL in a
toolkit-agnostic manner via GLX. Refactored OpenGL portions of
Capabilities class back into GLCapabilities. Reintroduced
GLCapabilitiesChooser interface for compatibility and to avoid having
to import javax.media.nativewindow classes in most user code.

Fixed problem in GLProfile where failures to load native libraries
were being squelched. Reorganized build to have all outputs under
build/ directory.

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1884 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 9bb10d5ae27d2276ebf7710d9d8ea73d09c52294 by Sven Gothel
Changed a few Class.forName() calls to defer initialization to avoid eager initialization of the AWT, in particular on Mac OS X, where doing so was causing crashes during Newt initialization

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1953 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 5fa993c74741ebb42301028df5572c8aad2f8107 by Sven Gothel
Fix: JAWTUtil has to JAWTNativeLibLoader.loadAWTImpl() as well. Use NWReflection.isClassAvailable() if possible. NWReflection.getClass() takes boolean init.

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1956 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit d795085a5f8f69507aa18cb15265c158ebbb83cf by Sven Gothel
EGL changes for device
Commit 7cd1d4c59e8ffc7a4e0d83ad485ab46499e74d35 by Sven Gothel
NEWT: Native window parenting (X11: OK); AWTWindow external Frame OK
Commit ab7ffac21638b0738c057ff8fe558e7b02881d8e by Sven Gothel
final large refactoring to move to com.jogamp.*.
Commit 03d931731475f6aea4f5040a00a6609a7c2edaa1 by Sven Gothel
code review (http://jogamp.org/bugzilla/show_bug.cgi?id=396): improved exception handling in NWReflection and NativeLibLoaderBase. goal was to prevent catch(Throwable) and to fix or document empty catch blocks where it makes sense.
Commit 79aaf78f04b02ef98845244226186823ff3d584b by Sven Gothel
- Fix: X11 locking 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
Commit cbdd6274e618f0af2af07afc72eb22dc32647cc3 by Sven Gothel
final large refactoring to move to com.jogamp.*.
Commit 79b427ed284bf6edfc932b5ad19884d4fe0397eb by Sven Gothel
Auto GL profile selection; New GLReflection (refactoring of common relfections); Fixes

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1684 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit d2bcb236273092923b04fa0096918523f2a3c02a by Sven Gothel
3rd round cdcfp - compile clean.

Re-adding cdcfp:
    com/sun/opengl/impl/glu/mipmap/*
    com/sun/opengl/impl/GLPbufferImpl.java

    Using 'BufferUtil.nativeOrder(ByteBuffer)'
    to set up the native byte order.
    'BufferUtil.nativeOrder' is now public.

    GLDrawableFactory:
        - removed 'hardcoded' awt attribute.

    Cleanup NEWT's AWT wrapping implementation.
        - NativeWindowFactory incooperates with the wrapping property.

    Bugs on X11/NEWT/AWT:
        - no events
        - deadlock at shutdown
        - deadlock if EGLDrawable with AWT get's locked

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1700 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 758f6eed4b97667f2024b5c62fc04cbb62e57740 by Sven Gothel
- Using new config feature: 'IgnoreExtendedInterfaceSymbols <java class source file>' and get rid of manual 'Ignore' configs for common stuff in the base interfaces.

- Add: GLUnsupportedException:
    - Using new config feature 'UnsupportedExceptionType GLUnsupportedException'
    - GLUnsupportedException is used for anything 'UnsupportedOperationException'

- GLU:
    - GLU itself is no more abstract
    - GLU contains the tesselator implementation
        - name, return type, modifiers and arguments
    - createGLU(..)
        - operated by profile name now.
        - GLU itself will be used for GLES2

- Cleanup:
    - gluegen/GL configs ..

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1725 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 0fac649aae582635a6131aa444bee2a6596cdb41 by Sven Gothel
Cleanup and partitioning of GLU

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1728 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit bc0efe87ffc160858088ae95840c69e9290f25f2 by Sven Gothel
- New profile GL2ES12 (desktop) - Intersection of GL2 + GLES1 + GLES2 - Common set of GLES1 + GLES2 - Utilized new 'ExtendedInterfaceSymbolsOnly' gluegen config

- DroppingUniqVendorExtension + 3DFX + APPLE
    - Some APPLE enumerates are manually provided!

- Removing of 'jogl.oswin.jar' - since it is redundant now!

- Proper partitioning of 'jogl.gl2' and 'jogl.gl2es12' for
    - x11, win and osx

- Profile selection/trial for e.g. GL2ES1 is now in the following order:
    1) GLES1
    2) GL2ES12
    3) GL2

- Footprint for all profiles below 1/2 MB,
    NEWT:
        ES1:     284 kB
        ES2:     280 kB
        GL2ES12: 332 kB
        GL2:     456 kB

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1729 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 5d82af18a06ce8f493cd7c90d1b9f35f9775081f by Sven Gothel
- Fixed rootrel.build usage, this works properly through gluegen, jogl-demos and this build. You can say -Drootrel.build=build-x86_64 for example.

- Fixed jogl-demos in regard to this changeset

- Gluegen
    - Fixed gluegen BuildComposablePipeline's 'getGL*' methods.
      Now they return 'this', otherwise the pipeline would be broken/removed.

    - Add BuildComposablePipeline CustomPipeline, which allows customized
      class composition with an interface (to be wrapped),
      prolog class and the downstream class.

    - Add GlueGen (incl. ant task) 'outputRootDir' to be able to set a
      top output root dir via ant / commandline.

- GL fixed function
    - Package 'javax.media.opengl.sub.fixed.*' defines some fixed function interfaces.
      This allows partitioning of custom implementation.

    - Using gluegen's new CustomPipeline to compose a GLFixedFuncIf implementation,
      using a GL downstream and a GLFixedFuncHookIf prolog.
      The latter implements the fixed functionality.
      Example is the GLFixedFuncImpl.
        gl.getContext().setGL( new GLFixedFuncImpl(gl, new FixedFuncHook(gl.getGL2ES2())) ) ;
      or
        gl.getContext().setGL( new GLFixedFuncImpl(gl, gl.getGL2ES1()) ) ;

   -  The example GLFixedFuncHookIf impl FixedFuncPipeline/
      can be instantiated with custom shader code.

- ES2 and all other interfaces only contain the original functionality,
  besides minor convenient data access methods.

- Fix: GL2ES2 createCompileShader() and createLoadShader() is moved to ShaderCode util class.

- Updated PMVMatrix

- Add: GLAutoDrawable.setContext() .. and all it's implementations
  Necessary to set a new GLContext.

- Add: GLContext getAttachedObject(int) and putAttachedObject(int, Object),
  to allow the user to attach application specific and TLS sensitive objects to the GLContext.

-

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1856 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit a270623faf11db8ff8c1382ee3d499aec00acf09 by Sven Gothel
JOGL refactoring: Refactored JOGL into 3 independent components.

1 NWI - Native windowing interface
        Abstracts the the general NativeWindow interface and it's factory,
        incl the basic JAWT and Xlib toolkit.
        The latter was motivated to clean up the JOGL workspace,
        and to allow other to reuse this part.
        The generic core is nwi.core.jar, the AWT add-on is nwi.awt.jar.

    2 JOGL - The OpenGL mapping
        Further cleanup of the SPEC.
        All non OpenGL toolkits are relocated to NWI and NEWT.
        There is still openmax and the windows audio layer ..
        Another cleanup of the fixed function pipeline emulation.
        Moved utilities and implementations where they belong ..
        Removed GLUnsupportedException.
        Misc .. changes

    3 NEWT - The new windowing toolkit
        The generic NEWT, newt.core.jar.
        The JOGL and AWT modules are seperate, newt.ogl.jar newt.awt.jar.
        Their build can be switched off.

    The modules source and builds resides in their own directory.
    Because of their nature, they share the stub_includes, etc.
    Each module has it's own ant build script
        - build-nwi.xml
        - build-jogl.xml
        - build-newt.xml
    They can be build at once using build.xml as ususal,
    which just invokes the seperate build tasks.

    if rootrel.build=build, then the build location is
        jogl/build-nwi
        jogl/build-jogl
        jogl/build-newt
    and the sources are under
        jogl/src/nwi
        jogl/src/jogl
        jogl/src/newt

    Tested: jogl-demos, d4; Linux, MacOsX; Nvidia

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1868 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 8f0402c50aca933448317ddf42e2e21f8b4a0dc7 by Sven Gothel
Start moving javax.media.nwi -> javax.media.nativewindow

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1879 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit b9c08ff50734bab498a11137c74de66ae6b18fbf by Sven Gothel
Continue moving javax.media.nwi -> javax.media.nativewindow

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1880 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 4ae07e34d97b8aeb5fed8293a2115e8b959904ca by Sven Gothel
Continue moving javax.media.nwi -> javax.media.nativewindow

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1881 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 2175445b0462859de678309c04a74f0bf67be42d by Sven Gothel
Movement of Capabilities class and chooseCapabilities functionality into NativeWindowFactory introduced an undesirable dependence between the windowing toolkit, which can be replaced via NativeWindowFactory, and the library which implements the selection algorithm, for example OpenGL. This would prevent, for example, an easy SWT port of JOGL.

To fix this, refactored chooseCapabilities into new
GraphicsConfigurationFactory, the default implementation of which is
currently a no-op on X11 platforms, and which is provided by JOGL in a
toolkit-agnostic manner via GLX. Refactored OpenGL portions of
Capabilities class back into GLCapabilities. Reintroduced
GLCapabilitiesChooser interface for compatibility and to avoid having
to import javax.media.nativewindow classes in most user code.

Fixed problem in GLProfile where failures to load native libraries
were being squelched. Reorganized build to have all outputs under
build/ directory.

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1884 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 6c3bb4a8c703012e8514fcea0c0a6ec9826178f6 by Sven Gothel
Changed a few Class.forName() calls to defer initialization to avoid eager initialization of the AWT, in particular on Mac OS X, where doing so was causing crashes during Newt initialization

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1953 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 90a29aef20d5be1b35c42f30a9a8bd3202a21fc2 by Sven Gothel
Fix: JAWTUtil has to JAWTNativeLibLoader.loadAWTImpl() as well. Use NWReflection.isClassAvailable() if possible. NWReflection.getClass() takes boolean init.

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1956 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit ccad31d01fc1385bd09029f825a4a7ad8c305b4f by Sven Gothel
Movement of Capabilities class and chooseCapabilities functionality into NativeWindowFactory introduced an undesirable dependence between the windowing toolkit, which can be replaced via NativeWindowFactory, and the library which implements the selection algorithm, for example OpenGL. This would prevent, for example, an easy SWT port of JOGL.

To fix this, refactored chooseCapabilities into new
GraphicsConfigurationFactory, the default implementation of which is
currently a no-op on X11 platforms, and which is provided by JOGL in a
toolkit-agnostic manner via GLX. Refactored OpenGL portions of
Capabilities class back into GLCapabilities. Reintroduced
GLCapabilitiesChooser interface for compatibility and to avoid having
to import javax.media.nativewindow classes in most user code.

Fixed problem in GLProfile where failures to load native libraries
were being squelched. Reorganized build to have all outputs under
build/ directory.

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1884 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 938e9b6628c2b09c9dfb183d42c7dab834b48876 by Sven Gothel
- Fixing SPEC documentation for bindings JOGL and NativeWindow, lot's of javadoc changes/fixes.

- Fixing transparency values RGB[A] in GLX and EGL, adding those in GLCapabilities.

- Adding EGLPbuffer (untested yet)

  Added EGLOnscreenContext, EGLOnscreenDrawable and EGLPbufferContext, EGLPbufferDrawable,
  which completes the now abstract EGLContext and EGLDrawable.

- Decoupling EGLDrawableFactory and DynamicLookupHelper:
    Since OpenGL ES has 2 libraries and hence 2 DynamicLookupHelper, one for each,
    these are decoupled in EGLES1DynamicLookupHelper and EGLES2DynamicLookupHelper,
    where each uses the base class EGLDynamicLookupHelper.
    EGLDynamicLookupHelper act's also as the owner of these singleton instances.

    EGLDrawableFactory is now pure singleton,
    and has no more relation to the ES[12] libraries.

    Still, GLDrawableFactory.getFactory(GLProfile) stays, due to the selection
    of the right factory, ie EGLDrawableFactory or a native one (X11GLX, WindowsWGL or MacOSXCGL).

    Added GLDrawableImpl.getDynamicLookupHelper().

    DynamicLookupHelper implementation is pushed down to the specialisation of GLDrawableImpl,
    hence removed GLDrawableImpl implements DynamicLookupHelper.

- Fixing Locking
    - Always throw an Exception if unlock is called without being locked.

    - Removed NativeWindow.LOCK_NOT_SUPPORTED, since it made the locking state ambiguos.

    - Using a generated Exception at locking to mark the object locked,
      and to let it throw in case of double locking.

    - Removed redundant lockToolkit() calls, where lockSurface() calls are made

- Fixing GLWindow wrapped toolkit (e.g. AWTWindow) usage
    - In case the passed NativeWindow only contains a wrapper window,
      we use the NativeWindowFactory.getNativeWindow() pipeline to produce a valid
      NativeWindow. This object is only referenced within the drawable, hence we have
      to use it for actual NativeWindow related operations.

    - Add setVisible(): lockSurface()/unlockSurface() to allow getting the windowHandle

    - Overwriting all drawable related Window method's, using the drawable's NativeWindow if exists.
        - getNativeWindow()
        - lockSurface()/unlockSurface()/..
        - getWindowHandle()/getSurfaceHandle()

- Fix NativeWindowFactory.getNativeWindowType(),
  so the custom and pure values are set once (static init) - not overwritten (prev. bug).

- NEWT: Added WindowEvent.EVENT_WINDOW_DESTROY_NOTIFY support in AWTWindow.
  Now the proper dispose() calls are made to all GLEventListeners if the AWT window
  is being closed - before it is actually destroyed.

- Threading now uses the AWTThreadingPlugin,
  a ThreadingPlugin interface AWT implementation, containing the refactored
  Threading code.

- Reintroduced getChosen*Capabilities and getRequested*Capabilites,
  where get*Capabilities is renamed back to getRequested*Capabilities.
  The semantics are necessary to allow the drawables (and NativeWindow)
  to be regenerated in case of a device change in a multihead environment.
  Otherwise there is a risk that recursive choosing of the Capabilities
  will degenerate the result.

- Multihead logic ..

    Exception:   Xinerama, where all monitors share the same static configuration,
                 and the window handle 'survive'
                 X11, MacOSX and Win32 with a Xinerama behavior

      1) Recognition of a display/screen/surface change
        - It is prooven that the JAWT model (JAWT_LOCK_SURFACE_CHANGED)
          while locking the surface is not reliably propagated, ie doesn't work here,
          if the display change happens.

        - AWT's Canvas.getGraphicsConfiguration() can reliably being used
          to detect this case, ie compare the old GraphicsConfiguration with the new one.

        - A solution for other native windowing toolkits must be found,
          ie query the current underlying pixel-configuration, if it changed - act.

      In which case the the following shall be done:
        2.0) - notify all GLEventListener via the dispose(GLAutoDrawable)
        2.1) - destroy the OpenGL context
        2.2) - call GLDrawable's setRealized(false)
        2.3) - call GLDrawable's setRealized(true)
        2.4) - create a new OpenGL context
        2.5) - notify all GLEventListener via the init(GLAutoDrawable)

      Steps 2.0 - 2.5 are executed with GLAutoDrawable's dispose(true) call.

      Step 2.3, setRealized(true) on GLDrawable shall:
        2.3.1) - Choose the GLCapabilities again, based on the requested ones,
                 and update the choosen ones in the AbstractGraphicsConfiguration.
        2.3.2) - Update AbstractScreen within the new AbstractGraphicsConfiguration to
                 reflect the possible screen change.

  DONE: Xinerama mode: X11 + Xinerama, MacOSX
  DONE: Introducing GLAutoDrawable.dispose(boolean regenerate)
  DONE: 2.3.1 on setRealized(true): Windows, MacOSX (implicit on createContext)
  TODO: Windows setRealized(true) on AWT Canvas getGraphicsConfiguration(),
        can't lock the JAWT surface sometimes - exception, code disabled, see GLCanvas.java
  TODO: 2.3.1 on setRealized(true): X11 and EGL
  TODO: Find a test case, without Xinerama behavior
  TODO: Code for Newt/NativeWindow to detect (1) and propagate GLAutoDrawable's dispose(true).

  TESTS:
    - MacOSX (Xinerama) OK

    - X11
        -TwinView (NV) OK
        -Xinerama (NV) OK

    - Win32 (Xinerama) OK

    - GLAutoDrawable's dispose(true)

-

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1929 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 248d4afb694355037b1dd98db3ed48f1fff20f50 by Sven Gothel
- Fix: X11 locking 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
Commit c6a09a835c5bfb95e9330a2449caf0d0bce4abcb by Sven Gothel
Refactored static initialization to let the JVM ensure it only runs once; don't remember the JVM static initialization rules which probably define why it was getting called twice

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1989 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit c7d7fd6d3253ea8967be58c2213c72b98a493a6d by Sven Gothel
final large refactoring to move to com.jogamp.*.
Commit 574b02b67402995f04a5991b3cae577ac111af06 by Sven Gothel
JAWT package cleanup .. re adding accidently removed files

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1675 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 3a24c4dc83fefb51724b0c8d98b4fbc5a26c5be6 by Sven Gothel
JOGL refactoring: Refactored JOGL into 3 independent components.

1 NWI - Native windowing interface
        Abstracts the the general NativeWindow interface and it's factory,
        incl the basic JAWT and Xlib toolkit.
        The latter was motivated to clean up the JOGL workspace,
        and to allow other to reuse this part.
        The generic core is nwi.core.jar, the AWT add-on is nwi.awt.jar.

    2 JOGL - The OpenGL mapping
        Further cleanup of the SPEC.
        All non OpenGL toolkits are relocated to NWI and NEWT.
        There is still openmax and the windows audio layer ..
        Another cleanup of the fixed function pipeline emulation.
        Moved utilities and implementations where they belong ..
        Removed GLUnsupportedException.
        Misc .. changes

    3 NEWT - The new windowing toolkit
        The generic NEWT, newt.core.jar.
        The JOGL and AWT modules are seperate, newt.ogl.jar newt.awt.jar.
        Their build can be switched off.

    The modules source and builds resides in their own directory.
    Because of their nature, they share the stub_includes, etc.
    Each module has it's own ant build script
        - build-nwi.xml
        - build-jogl.xml
        - build-newt.xml
    They can be build at once using build.xml as ususal,
    which just invokes the seperate build tasks.

    if rootrel.build=build, then the build location is
        jogl/build-nwi
        jogl/build-jogl
        jogl/build-newt
    and the sources are under
        jogl/src/nwi
        jogl/src/jogl
        jogl/src/newt

    Tested: jogl-demos, d4; Linux, MacOsX; Nvidia

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1868 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit bdf2d261c915241ca0a4670bfcefd47d1267d235 by Sven Gothel
Start moving javax.media.nwi -> javax.media.nativewindow

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1879 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 33d420ef2a006696db3bb8ecf4d9b0f4cc671e6b by Sven Gothel
Continue moving javax.media.nwi -> javax.media.nativewindow

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1880 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit c8642443f7c61dd1951c632f9bab053b223fefa5 by Sven Gothel
Continue moving javax.media.nwi -> javax.media.nativewindow

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1881 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit b2a81dc8258720998c7c3a0d524cb7cdf3a60ba5 by Sven Gothel
JOGL Added OpenGL 3.0 and 3.1 support 3.0 as part of GL2 (extensions only) 3.1 forward compatible as GL3, ie doesn't contain the GL2 fixed function stuff etc

Added code to retrieve a 3.0/3.1 context: X11/GLX and Windows/WGL
        TODO: MacOSX !!

    Updated GL and GLX extensions

    Fixing auto GLProfile selection, determine if GL2ES[1] uses GL2 or ES

    Usage of the unified GraphicsConfiguration of NativeWindow
    for all platforms. Sure, the broken OS (Win32/MacOSX) have
    a update mechanism for theit queried Capabilities after drawable creation.

    Adding X11/GLX GLXFBConfig usage and fixing it's attribute mapping

    Fixing GLX/X11 FBConfig/XVisual query function's memory leak,
    using a manual implementation, which copies the data and calls XFree.

    Added WGL extension WGL_ARB_create_context

    Tested: Linux x86 and x86_64 GL2, ES2 and ES1
            Note: Nvidia driver couldn't make the succesfully created 3.1
            context current.

    TODO: Verify Windows and MacOSX !!

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1919 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit dd0301a2f37c9810c533b1d3eb7d68ca440d67c8 by Sven Gothel
Tested: - Linux / X11 / GL3 / GL2 / ES1 / ES2 - Using etc/profile.jogl JOGL_ALL . ./setenv-jogl.x86.sh JOGL_ALL - Java2D/GLJPanel: demos.jrefract.JRefract - GLCanvas: demos.gears.Gears - Newt/Nativewindow (demos.GLInfo, demos.es2.RedSquare, demos.es2.RedSquare) - with multiple instances of different GL profiles, ie java demos.es1.RedSquare -GLES2 -GLES1 java demos.GLInfo -GLES2 -GL2 - GL 3.1 test with demos.GLInfo java demos.GLInfo -GL3 java demos.GLInfo -GL3 -GL2 with NVIDIA 180.37.05

JOGL
    Enable parallel GLProfiles:
        - GL holds it's GLProfile

        - GL / GLBase added:
            hasGLSL()
            getGLProfile()

        - Removed all hardcoded GLProfile checks

        - Make GLProfile an instance of GLCapabilities

        - GLCapabilities needs GLProfile in constructor,
          or null for the default GLProfile

        - All GLProfiles are singelton mapped objects,
          setup and verified at static init.

        - All GLDrawableFactories in GLDrawableFactory are singelton objects,
          setup at static init.

        - GLDrawableFactories.getFactory() needs an argument,
          which leads to GLProfile, ie
          NativeWindow, AbstractGraphicsConfiguration, GLCapabilities or GLProfile.

        - EGLDrawableFactory takes GLProfile as an argument,
          being able to take the singleton role as ES1 or ES2

        - EGLDrawableFactory loads ES & EGL libraries _local_,
          otherwise the symbols produce a collision (Unix/PC-Emulation).
          TODO: Check on Windows/WinCE !

        - Fixing etc/profile.jogl JOGL_ALL

    EGLGraphicsConfigurationFactory
        - Added eglGetConfigs -> GLCapabilities -> eglChooseConfig,
          in case the simple eglChooseConfig fails.

        - Using given chooser, is null, use DefaultGLCapabilitiesChooser

    Moved FixedFuncUtil.class -> jogl.util.jar,
          otherwise the FixedFuncUtil pipeline cannot be used without emulation.

    GLDrawable
        Rename getChosenGLCapabilities() -> getGLCapabilities(),
               since all GLCapabilities access functions return the current state.
        Add getGLProfile()

    NativeLibLoader[Base]
        Added 'addLoaded' and 'isLoaded', so all LoadAction implementation
        can use it and circumvent double library loading.

    GlueGen
        Split openLibrary -> openLibraryLocal / Global,
              utilizing as an optional flag (global), which is true per default.
        TODO: How to do this on Windows ?

    TODO: Verify Windows and MacOSX !!

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1922 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit c9ffd9ba1a1fdc9934e517baf96c9f7959f0e5b2 by Sven Gothel
Fix: JAWTUtil has to JAWTNativeLibLoader.loadAWTImpl() as well. Use NWReflection.isClassAvailable() if possible. NWReflection.getClass() takes boolean init.

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1956 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 8c57934736fac7b3e268020e64910a984b24e8c6 by Sven Gothel
Push custom loadLibrary handling down to NativeWindow NativeLibLoaderBase; X11AWTGLXGraphicsConfigurationFactory: Encapsule whole block in lock/unlock to minimize context switch

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@2021 232f8b59-042b-4e1e-8c03-345bb8c30851
Commit 5448c24c7e67aca6efbcee78fe5c57de079f01a2 by Sven Gothel
final large refactoring to move to com.jogamp.*.
Commit 316e43b5a13012ce5f41a03b8b602105921e872b by Sven Gothel
code review (http://jogamp.org/bugzilla/show_bug.cgi?id=396): improved exception handling in NWReflection and NativeLibLoaderBase. goal was to prevent catch(Throwable) and to fix or document empty catch blocks where it makes sense.
Commit b18ec2c1d33f38d726ed9adbd4471869c08d3090 by Sven Gothel
Moving imported files to proper place
Commit 012945e169956ab1e227020a07e4f1b602c9dec7 by Sven Gothel
remove duplicated file while importing
Commit c7630f35befa1b8dbd365984f08c4efbc04488c1 by Sven Gothel
Added keyNotFoundValue semantics, for primitve types it defaults to -1 now.
Commit a01cb3d59715a41153380f1977ec75263b762dc6 by Sven Gothel
Importing files from JOGL (preserving history)
    git mv src/nativewindow/native/JVM_Tool.c src/native/common/JVM_Tool.c
    git mv src/nativewindow/classes/com/jogamp/nativewindow/impl/NativeLibLoaderBase.java src/java/com/jogamp/common/jvm/JNILibLoaderBase.java
    git mv src/nativewindow/classes/com/jogamp/nativewindow/impl/jvm/JVMUtil.java src/java/com/jogamp/common/jvm/JVMUtil.java
    git mv src/nativewindow/classes/com/jogamp/nativewindow/impl/NWReflection.java src/java/com/jogamp/common/util/ReflectionUtil.java

    Adding own JogampRuntimeException and Debug class
Commit bce53b52c8638729750c4286dbc04cb14329fd34 by Sven Gothel
Fix Exception Handling ..