SuccessChanges

Summary

  1. Bug 1178: Fix cc3: Set position using LocationOnScreen coordinates. (details)
  2. Bug 1178: X11UnderlayTracker: Resend identical KeyCode, KeySymbol and (details)
  3. NEWT WindowsWindow.c: Fix return value; Add tracking of inOn[Bottom|Top] (details)
  4. Bug 1188: Fix API doc of getSupportedStateMask(); Misc Changes (see (details)
  5. Bug 1188: NEWT WindowsWindow.c: Better support for 'isOnBottom' on (details)
  6. GLContextImpl.setRendererQuirks(..): Reduce duplicated code of adding (details)
  7. Bug 1202 - Add support of Adaptive Vsync via (details)
  8. Bug 1202 - Move GLContextImpl.*SwapInterval* into its own section (details)
  9. Bug 1203 (Related): Only attempt to retrieve getGLIntVersion(..) if (details)
  10. Bug 1203: Properly format DEBUG output related to mapGLVersions: Use (details)
  11. Bug 1200: Fix crash on GNU/Linux x86_64 'NVidia beta driver 355.06' @ (details)
  12. Bug 1203: SharedResourceRunner.Implementation impl. shall use (details)
  13. Bug 1203: Use platform native default display connection (details)
  14. Bug 1203: GLDrawable-Stateless operations in GLContextImpl, using (details)
  15. Bug 1203: Fix GLES3Impl.getGLES3(): Test _isES3 and throw GLException if (details)
  16. Bug 1203: EGLGraphicsDevice.nativeDisplayID: Differentiate upstream (details)
  17. Bug 1203: Refine DEBUG output (details)
  18. Bug 1203: Cleanup and Prepare for regular EGL Profile probing (details)
  19. Bug 1200: Refine fix for crash on GNU/Linux x86_64 'NVidia beta driver (details)
  20. Bug 1203: Implement regular EGL OpenGL Profile probing (ES* + GL*) (details)
  21. FloatUtil: Remove '@deprecated' for 'matrixToString' 'FloatBuffer' (details)
  22. Bug 1203: EGLDrawableFactory.mapAvailableEGLESConfig(..): Add missing (details)
  23. *AnimatorImpl: Catch concurrent pulling of GLAutoDrawable instances (details)
  24. Fix JSpatial link (details)
  25. Bug 1202 (related): Fix SEMVER regressions mostly due to Bug 1202 (details)
  26. Bug 1203: Adding factory-offscreen unit test, validating ES/GL usage (details)
  27. Bug 1203: Fix regression of ES3 minMajor constraint lack (commit (details)
  28. Bug 1203: Fix TestGLAutoDrawableFactoryGLProfileDeviceNEWT: Do not (details)
  29. Bug 1203: Fix regression: Handle GLRendererQuirks.GLES3ViaEGLES2Config (details)
  30. Bug 1203: Optimize OpenGL Profile probing/mapping (Skip redundant (details)
Commit 5db1ba769b6a4b8f8e7148728bb1a82149c822ee by xerxes
Bug 1178: Fix cc3: Set position using LocationOnScreen coordinates.

Signed-off-by: Xerxes RÃ¥nby <xerxes@gudinna.com>
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/X11UnderlayTracker.java (diff)
Commit a963506dc19eca14f0fe7bbf22700b5791bd6821 by xerxes
Bug 1178: X11UnderlayTracker: Resend identical KeyCode, KeySymbol and KeyChar

Signed-off-by: Xerxes RÃ¥nby <xerxes@gudinna.com>
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/X11UnderlayTracker.java (diff)
Commit 7ff3360ee2fc3d1e3742ffff2a8ba7000090c816 by Sven Gothel
NEWT WindowsWindow.c: Fix return value; Add tracking of inOn[Bottom|Top]
The file was modifiedsrc/newt/native/WindowsWindow.c (diff)
Commit 725e9acfcdd0e16a3533d097692a912383bae3fc by Sven Gothel
Bug 1188: Fix API doc of getSupportedStateMask(); Misc Changes (see below)

- Fix STATE_MASK_CREATENATIVE
- Simplify resetStateMask()
- Windows WindowDriver: Remove STATE_MASK_STICKY from supported states

- TestGearsNEWT: Use NEWTDemoListener
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/newt/TestGearsNEWT.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Window.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
Commit 522fe5ac2ef057286e4cbfa170aa4292c4ffed2d by Sven Gothel
Bug 1188: NEWT WindowsWindow.c: Better support for 'isOnBottom' on Windows (Fullscreen on Bottom not working though)

- Terminology
  - ALWAYSONBOTTOM -> isOnBottom
  - ALWAYSONTOP -> isOnTop

- Better support for 'isOnBottom' on Windows
  - Refine 'SetWindowPos(..)' calls to handle isOn[Top|Bottom]

  - Refine 'ShowWindow(..)' calls to handle isOnBottom

  - Intercept WM_WINDOWPOSCHANGING to enforce isOn[Top|Bottom],
    i.e. change params (hwndInsertAfter and flags).

- Fullscreen on Bottom not working
  - While we change all flags appropriately (NOACTIVATE, ..)
    and don't issue CDS_FULLSCREEN is on bottom,
    Windows seems to enforce the window to be on top
    if it is sized to the screen maximum.
The file was modifiedsrc/newt/native/WindowsWindow.c (diff)
Commit 8b4f68a3a014c3ae62a64def3011ccc43e8c41c9 by Sven Gothel
GLContextImpl.setRendererQuirks(..): Reduce duplicated code of adding quirks
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit deff49c901915e007f43a1df1a0d217a786e9f06 by Sven Gothel
Bug 1202 - Add support of Adaptive Vsync via [GLX|WGL]_EXT_swap_control_tear

[GLX|WGL]_EXT_swap_control_tear extensions support
asynchronous buffer swaps, i.e. adaptive Vsync.

<https://www.opengl.org/wiki/SwapInterval_aka_vsync#Adaptive_Vsync>
<https://www.opengl.org/registry/specs/EXT/wgl_swap_control_tear.txt>
<https://www.opengl.org/registry/specs/EXT/glx_swap_control_tear.txt>

<http://keithp.com/blogs/async_flip/>

The extensions utilizes a negative interval value,
enabling late swaps to occur without synchronization to the video frame.

Hence '-1' has new semantics, previously it was the 'default value'
of 'untouched vsync interval'.

New default is:
  - 0 for unrealized context
  - 1 for realized context

+++

It requires [GLX|WGL]_EXT_swap_control,
hence we shall ensure to use use this extension
in the implementation of GLContext.setSwapInterval(..).

+++

Mesa3D seems to support GLX_SGI_swap_control only.

+++

Implemented on Windows and X11.

+++

On GNU/Linux using NVidia driver w/ my setup(*), sadly the query
  GLX.glXQueryDrawable(displayHandle, drawable.getHandle(), GLX.GLX_LATE_SWAPS_TEAR_EXT, val);
always returns zero here, indicating async vsync is not supported.

(Queried the attribute for every frame in windowed or fullscreen mode)

Fullscreen
(*)
  - Debian 8
  - Kernel 3.16
  - KDE/Kwin
  - GL Version     4.5 (Core profile, arb, compat[ES2, ES3, ES31], FBO, hardware) - 4.5.0 NVIDIA 355.06 [GL 4.5.0, vendor 355.6.0 (NVIDIA 355.06)]
  - GL_RENDERER    GeForce GTX 660/PCIe/SSE2
  - Samsung U28D590 (DFP-4): Internal DisplayPort

+++
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLContext.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/PointsDemoES2.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/Gears.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/Mix2TexturesES2.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLXExtensions.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es1/PointsDemoES1.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/NEWTDemoListener.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/FBOMix2DemosES2.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/util/applet3/JOGLNewtApplet3Run.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/util/applet/JOGLNewtAppletBase.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/applet/JOGLNewtApplet1Run.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureDraw02ES2ListenerFBO.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLBase.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es1/RedSquareES1.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/graph/demos/GPURendererListenerBase01.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIListenerBase01.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/GearsES2.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/LandscapeES2.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT00.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/RedSquareMappedES2.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/RedSquareES2.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLContext.java (diff)
Commit 6ab634654f58afcf4549fcd1a796a0f9fd13298c by Sven Gothel
Bug 1202 - Move GLContextImpl.*SwapInterval* into its own section
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 60469c5a09a1e61094a9d0b41db033706e03874d by Sven Gothel
Bug 1203 (Related): Only attempt to retrieve getGLIntVersion(..) if required

i.e. major >= 3 || hasGLVersionByString.compareTo(Version3_0) >= 0.
Otherwise the 'VersionNumber hasGLVersionByInt' was never used -> reduce possible GL_ERRORs.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit e8d66b1cd2b48899b7a012d54ba83d5c2a449b0a by Sven Gothel
Bug 1203: Properly format DEBUG output related to mapGLVersions: Use '-MapGLVersions' suffix.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLContext.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/NativeWindowException.java (diff)
Commit e88216bd03a41480b81345ed9afc45ddea5ecfcd by Sven Gothel
Bug 1200: Fix crash on GNU/Linux x86_64 'NVidia beta driver 355.06' @ probeSurfacelessCtx

Since no known NVidia driver is know properly supporting surfaceless context,
i.e. current context w/o drawable attached, we set quirk NoSurfacelessCtx
for all NVidia drivers until a 'good one' is known!
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 618f6380b6eb6a96f8f1829c1dfb621a71209711 by Sven Gothel
Bug 1203: SharedResourceRunner.Implementation impl. shall use AbstractGraphicsDevice's uniqueID instead of connection

AbstractGraphicsDevice's uniqueID supports multiple device types and units while including the connection.
This is required for proper EGLDrawableFactory's profile probing on different native platform devices.

Using common abstract implementation 'AImplementation'
for WindowsWGL's, X11GLX's and EGL's DrawableFactory.
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/SharedResourceRunner.java (diff)
Commit c835cdddfb37c5e8df424f984b821163b5645198 by Sven Gothel
Bug 1203: Use platform native default display connection

On networking windowing systems (X11), we shall utilize the real
native default display connection.

On X11, this is X11Util.getNullDisplayName(),
for other non networking types, this is AbstractGraphicsDevice.DEFAULT_CONNECTION.
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/DefaultGraphicsDevice.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/DefaultGraphicsScreen.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/egl/EGLGraphicsDevice.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/swt/SWTAccessor.java (diff)
Commit 390ccc3e549e4cc13b7dab91387e72c1f10b77a9 by Sven Gothel
Bug 1203: GLDrawable-Stateless operations in GLContextImpl, using ctxVersion and ctxOptions

- State-less operation during profile probing (mapGLVersions).
  While probing the GLDrawable/GLProfile and GL instance
  may not reflect the currently probed OpenGL profile.
  Hence stateless operation by passing required information
  is required for:
  - GLDynamicLookupHelper must be fetched via
    'major-version and contextOptions'.
  - GLContextImpl.resetProcAddress(..)
  - GLContextImpl.updateGLXProcAddressTable()
  - GLContextImpl.setGLFunctionAvailability(..)
  - ExtensionAvailabilityCache

TODO: Add replacement for GLProfile validation,
which is disabled right now.:
  drawable.getGLProfile().verifyEquality(gl.getGLProfile())

The GLDrawable.GLProfile maybe less than GL's GLProfile
due to current context-version and options.
Hence we would need a 'GLProfile.bwCompatibleWith(GLProfile)'.
The file was modifiedsrc/jogl/classes/jogamp/opengl/ExtensionAvailabilityCache.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLDrawableFactory.java (diff)
The file was modifiedmake/config/jogl/glu-CustomJavaCode-gl2.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLDrawableFactory.java (diff)
Commit 09b269423f11d0f867831b91d989a6bebbd87738 by Sven Gothel
Bug 1203: Fix GLES3Impl.getGLES3(): Test _isES3 and throw GLException if not.
The file was modifiedmake/config/jogl/gl-impl-CustomJavaCode-gles3.java (diff)
Commit 45e58f4884108a300f08fd9af6aee82121376974 by Sven Gothel
Bug 1203: EGLGraphicsDevice.nativeDisplayID: Differentiate upstream device's native handle via own ctor, reducing redundancy
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/egl/EGLGraphicsDevice.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff)
Commit 50d4fd0210a417ba0fcbf73a90e50a86ef076cad by Sven Gothel
Bug 1203: Refine DEBUG output
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLSurface.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawable.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLProfile.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDummyUpstreamSurfaceHook.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
Commit b8ba30a0bc7cbd36abba37d72b45f78eb989e994 by Sven Gothel
Bug 1203: Cleanup and Prepare for regular EGL Profile probing

- GLContextImpl
  - add 'MappedGLVersion' type, preserving information from GL profile mapping

  - add 'MappedGLVersion mapAvailableGLVersion(..)'

  - add 'setMappedGLVersionListener(final MappedGLVersionListener mvl)',
    allowing implementations to register successfully mapped profiled.

  - add 'void remapAvailableGLVersions(final AbstractGraphicsDevice fromDevice, final AbstractGraphicsDevice toDevice)',
    allowing implementations to fully map one-devices profiles to another one
    avoiding a redundant profile mapping (probe operation).

  - 'mapGLVersions(..)'
    - disable desktop-core profile mapping if GLProfile.disableOpenGLDesktop
    - disable desktop-desktop profile mapping if GLProfile.disableOpenGLDesktop

- EGLDrawableFactory
  - remove jogl.debug.EGLDrawableFactory.QueryNativeTK,
    since it shall not be used anymore.

  - Use 'NativeWindowFactory.getDefaultDisplayConnection(..)'
    for default EGLGraphicsDevcie

  - add 'hasFullOpenGLAPISupport()'

  - Use 'EGLSurface' return type if appropriate.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
Commit 17af6ed1d0f60c111079ff19c4114fefbfd025fc by Sven Gothel
Bug 1200: Refine fix for crash on GNU/Linux x86_64 'NVidia beta driver 355.06' @ probeSurfacelessCtx

Refine commit e88216bd03a41480b81345ed9afc45ddea5ecfcd,
i.e. restrict new 'NoSurfacelessCtx' NVidia-Vendor criteria in GLContextImpl.setRendererQuirks(..) to
  - isX11 (new)
  - isDriverNVIDIAGeForce (kept)
  - !(adevice instanceof EGLGraphicsDevice) (new)

Surfaceless context seems to work on NVidia 355.06 for EGL+[ES+GL].
It does not work for GLX+GL though!

TODO: Validate changing a GLContext's GLDrawable from 'onscreen' or 'offscreen'
      to 'zero' (Surfaceless).
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 99a064327bf991318841c858d21d13e55d6b39db by Sven Gothel
Bug 1203: Implement regular EGL OpenGL Profile probing (ES* + GL*)

- GLProfile
  - Add 'hasGL234OnEGLImpl' handling, i.e. GL* profiles on EGL devices

  - Properly handle EGL's 'GLDynamicLookupHelper' queries for ES2, ES1 and GL* profiles,
    i.e. allow each one to fail seperately.

  - Merge computed EGL-Profile-Map (1) and Desktop-Profile-Map (2)
    per device, instead of just using the last computation,
    preserving and favoratizing the Desktop-Profile-Map.

- GLContextImpl.mapGLVersions(..): Map ES* profiles if having an EGLGraphicsDevice
  and not disabled via GLProfile.disableOpenGLES.

- EGLContext
  - createContextARBImpl(..): Use the EGL_CONTEXT_MINOR_VERSION_KHR if supported

  - GLContext* accessibility: Remove unused entries, add newly used ones

- EGLDrawableFactory
  - Fix a bug regarding detection of 'OpenGL' API for EGL

  - SharedResource: Use detailed knowledge of each profile

  - Only create one drawable and context for probing maximum,
    utilizing 'GLContextImpl.MappedGLVersionListener'
    to detect all mapped profiles for 'SharedResource' instance.

  - Detect whether the probed/mapped device
    can be mapped to the default-EGL-device, i.e.:
      - current device is not the default-EGL-device
      - default-EGL-device is valid and could be mapped (beforehand)
      - same connection
    In this case, no probing/mapping is performed
    and the default-EGL-device mapped data being reused and remapped
    to the requested device.

  - When mapping/probing, attempt to use a surfaceless context first,
    allowing same codepath for default-EGL-device and native-device (X11, ..).
    This avoids using pbuffer if using default-EGL-device
    and a dummy onscreen window if using a native-device (X11, ..).
    If this fails, continue as usual ..
      - default-EGL-device -> pbuffer
      - native-device (X11, ..) -> dummy onscreen window
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLProfile.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
Commit f18b25ca29897615611553a251e8d0ef0154b0e1 by Sven Gothel
FloatUtil: Remove '@deprecated' for 'matrixToString' 'FloatBuffer' variant
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/math/FloatUtil.java (diff)
Commit 472d97e821520235eb006f3c135df2f629494326 by Sven Gothel
Bug 1203: EGLDrawableFactory.mapAvailableEGLESConfig(..): Add missing close on device (surfaceless); Remove one try-finally block
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
Commit 7140081033444abf95d2f8289eaa62ead41cf2e0 by Sven Gothel
*AnimatorImpl: Catch concurrent pulling of GLAutoDrawable instances

It may happen that an GLAutoDrawable is being pulled concurrently from the
animators list, in which case an IndexOutOfBoundsException might be thrown.

Example:
    [junit] *** AWTRobotUtil: UncaughtException (this Thread main-AWTAnimator#00) : Thread <main-AWTAnimator#00>, java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    [junit] java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    [junit]     at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    [junit]     at java.util.ArrayList.get(ArrayList.java:429)
    [junit]     at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:68)
    [junit]     at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:451)
    [junit]     at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:198)
    [junit]     at java.lang.Thread.run(Thread.java:745)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/DefaultAnimatorImpl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/AWTAnimatorImpl.java (diff)
The file was modifiedwww/index.html (diff)
Commit 1d1b3f92a7c8021198e44bc4b2d6494ab789ddd3 by Sven Gothel
Bug 1202 (related): Fix SEMVER regressions mostly due to Bug 1202 commits (adding dummy methods)

Commits deff49c901915e007f43a1df1a0d217a786e9f06 and 6ab634654f58afcf4549fcd1a796a0f9fd13298c
changed/removed a few protected methods of public classes ..

Re-added dummy methods .. shall be removed for next 2.4.* version
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLUniformData.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/math/FloatUtil.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLContext.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/math/TestPMVMatrix01NEWT.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java (diff)
Commit da4d07c2bc633a4660a3ad2b67600fa8b4cb8506 by Sven Gothel
Bug 1203: Adding factory-offscreen unit test, validating ES/GL usage with EGL and Desktop GLDrawableFactory
The file was modifiedmake/scripts/tests.sh (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryGLProfileDeviceNEWT.java
Commit 08217de7bc0e0ffd09bd6c85d8c6d55ac63cfa33 by Sven Gothel
Bug 1203: Fix regression of ES3 minMajor constraint lack (commit b8ba30a0bc7cbd36abba37d72b45f78eb989e994)

commit b8ba30a0bc7cbd36abba37d72b45f78eb989e994's
GLContextImpl.createContextARBMapVersionsAvailable(..)
accepted minMajor=2 for ES3 detection -> wrong of course.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit cda92c2cc066c18ab30b828592e1979ab535441c by Sven Gothel
Bug 1203: Fix TestGLAutoDrawableFactoryGLProfileDeviceNEWT: Do not assume EGL/Desktop factories are available!
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryGLProfileDeviceNEWT.java (diff)
Commit 365d273115a98ab38c454608448c6639c45b5f74 by Sven Gothel
Bug 1203: Fix regression: Handle GLRendererQuirks.GLES3ViaEGLES2Config

Need to handle GLRendererQuirks.GLES3ViaEGLES2Config,
i.e. a created ES3 context via ES2 request must result in
mapping ES3 as well.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 3ac457a3a9074a70bf428bb6a5674b8f70d268b1 by Sven Gothel
Bug 1203: Optimize OpenGL Profile probing/mapping (Skip redundant queries)

Via GLDrawableFactory[Impl] the following details are considered
while GLContextImpl.mapGLVersions(..):
  - hasOpenGLDesktopSupport
    If false, skip OpenGL Desktop queries

  - hasOpenGLESSupport
    If false, skip OpenGL ES queries

  - hasMajorMinorCreateContextARB
    If false, reduce [maxMajor.maxMinor..minMajor.minMinor]
    iteration, reducing to [maxMajor..minMajor],
    usually only one query.
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryGLProfileDeviceNEWT.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)