Jogamp
jogl.git
2 years agoTestVersionSemanticsNOUI: Add version tests: v221 -> v230 and v230 -> v23x (*) v2.3.1
Sven Gothel [Fri, 27 Mar 2015 14:58:50 +0000 (15:58 +0100)]
TestVersionSemanticsNOUI: Add version tests: v221 -> v230 and v230 -> v23x (*)

(*) Version v230 -> v23x
Violates the semantic versioning spec a bit, i.e.
minor API change within 'com/jogamp/opengl/util/stereo/' !

   2/  11: com.jogamp.opengl.util.stereo.StereoDevice.Config                          : Remove    1, Change    0, Deprecate    0, Add    0
   4/  11: com.jogamp.opengl.util.stereo.StereoDeviceFactory                          : Remove    1, Change    0, Deprecate    0, Add    4
   6/  11: com.jogamp.opengl.util.stereo.StereoDeviceRenderer                         : Remove    1, Change    0, Deprecate    0, Add    1

Class com.jogamp.opengl.util.stereo.StereoDevice.Config
 Removed Class , access public super synchronized
Class com.jogamp.opengl.util.stereo.StereoDeviceFactory
 Removed Method createDevice, desc (ILcom/jogamp/opengl/util/stereo/StereoDevice$Config;Z)Lcom/jogamp/opengl/util/stereo/StereoDevice;, access abstract public
Class com.jogamp.opengl.util.stereo.StereoDeviceRenderer
 Removed Method getSingleSurfaceSize, desc ()Lcom/jogamp/nativewindow/util/DimensionImmutable;, access abstract public

2 years agoBug 1116: Add ShutdownHook for all factories and devices to StereoDeviceFactory using...
Sven Gothel [Fri, 27 Mar 2015 14:10:54 +0000 (15:10 +0100)]
Bug 1116: Add ShutdownHook for all factories and devices to StereoDeviceFactory using NativeWindowFactory

2 years agoBug 1116: Oculus SDK 0.4.4: Add extra DK1 detection; Add call to ovr_Shutdown() and...
Sven Gothel [Fri, 27 Mar 2015 13:25:07 +0000 (14:25 +0100)]
Bug 1116: Oculus SDK 0.4.4: Add extra DK1 detection; Add call to ovr_Shutdown() and ovrHmd_Destroy(hmdDesc).

Add extra DK1 detection
  - SDK 0.4.4 w/ DK1 (Linux): ovrHmd_Detect() returns zero!
  - In such case: Try creating one device, which works for DK1 on Linux

Add call to ovr_Shutdown() and ovrHmd_Destroy(hmdDesc).
  - Add StereoDeviceFactory.shutdown() and call
    ovr_Shutdown() for in OVRStereoDeviceFactory.shutdown().

  - Call ovrHmd_Destroy(hmdDesc) in OVRStereoDevice.dispose().

2 years agoStereoDeviceUtil: Only rotate if current mode doesn't match required rotation. Add...
Sven Gothel [Fri, 27 Mar 2015 12:01:44 +0000 (13:01 +0100)]
StereoDeviceUtil: Only rotate if current mode doesn't match required rotation. Add verbosity.

Allowing user to permanently rotate the device ..

2 years agoBug 1116: Oculus SDK 0.4.4 support for JOGL - Fix OSX build
Sven Gothel [Fri, 27 Mar 2015 10:28:34 +0000 (11:28 +0100)]
Bug 1116: Oculus SDK 0.4.4 support for JOGL - Fix OSX build

2 years agoBug 1116: Oculus SDK 0.4.4 support for JOGL - Part-3: New set of C-files, adapt to...
Sven Gothel [Fri, 27 Mar 2015 02:07:58 +0000 (03:07 +0100)]
Bug 1116: Oculus SDK 0.4.4 support for JOGL - Part-3: New set of C-files, adapt to new SDK API

- Tested on Windows and working StereoDemo01 w/ DK2!

2 years agoBug 1116 - Add OculusVR DK2 Support - Part-2 (DK1 and DK2 on DK2 SDK w/ Eye Tracker...
Sven Gothel [Thu, 26 Mar 2015 22:36:50 +0000 (23:36 +0100)]
Bug 1116 - Add OculusVR DK2 Support - Part-2 (DK1 and DK2 on DK2 SDK w/ Eye Tracker if available)

2 years agoBug 1150 - Fix unit tests: Use same definition as in GLProfile for 'disableOpenGLARBC...
Sven Gothel [Thu, 26 Mar 2015 20:14:18 +0000 (21:14 +0100)]
Bug 1150 - Fix unit tests: Use same definition as in GLProfile for 'disableOpenGLARBContext', i.e. exclude OSX

Also add 'TestGLProfileXXNEWTPost',
run w/o any properties after TestGLProfile*NoARBCtx
to be sure follow-up unit tests are tested under default conditions.

2 years agoGLContext glVersionString: Group all 'compat' flags to save space, add ES32 compatibility
Sven Gothel [Thu, 26 Mar 2015 15:34:39 +0000 (16:34 +0100)]
GLContext glVersionString: Group all 'compat' flags to save space, add ES32 compatibility

2 years agoBug 1150 - Fix GLContextImpl.createImpl(..) NoARBCreateContext and '!ARB GL >= 3...
Sven Gothel [Thu, 26 Mar 2015 15:33:55 +0000 (16:33 +0100)]
Bug 1150 - Fix GLContextImpl.createImpl(..) NoARBCreateContext and '!ARB GL >= 3.1' issues

This fix solves the described issues below.

Test cases added for onscreen and offscreen drawables,
the latter includes Window's bitmap special case.

GLContextImpl.createImpl(..): Fix NoARBCreateContext and '!ARB GL >= 3.1' issues:
=================================================================================
GLContextImpl.createImpl(..) implementation of X11GLXContext and WindowsWGLContext
wrongly handles the case of NoARBCreateContext.
Here the !ARB created context shall allow GL >= 3.1,
since ARB context creation is disabled and 'no mix' can occur.

The latter was already intended due to failure criteris 'createContextARBTried'
in:
  if( glCaps.getGLProfile().isGL3() && createContextARBTried ) {
     failure("createImpl ctx !ARB but ARB is used, profile > GL2 requested");
  }

Further, WindowsWGLContext treats glCaps.isBitmap()
within the 'createContextARBTried=true' case, but it shall never
tried using the ARB context creation method.
This even lead to the issue of creating a 1.1 context,
but having the ProcAddressTable being still on the GL > 2 cached table.
This is due to 'setGLFunctionAvailability(..)'.

Ensure 'setGLFunctionAvailability(..)' is functional
====================================================

Caller shall either throws an exception if method returns false
or issues a state reset.

In case 'setGLFunctionAvailability(..)' throws an exception itself,
the states are no issue.

2 years agoBug 1149 - Replacing PCPP w/ JCPP: Update HowToBuild.html
Sven Gothel [Tue, 24 Mar 2015 02:56:16 +0000 (03:56 +0100)]
Bug 1149 - Replacing PCPP w/ JCPP: Update HowToBuild.html

2 years agoAdapt to new JNI header location within GlueGen, completes commit 9fb45e70730198fa7be...
Sven Gothel [Tue, 24 Mar 2015 02:55:37 +0000 (03:55 +0100)]
Adapt to new JNI header location within GlueGen, completes commit 9fb45e70730198fa7be940c5b48dd5c59bf04b93

JNI header moved to GlueGen via commit 532b8df474976b474f0cf4eb2d93588ded2ad3fe

2 years agoRemove all JNI header, as they were unified in GlueGen commit 532b8df474976b474f0cf4e...
Sven Gothel [Tue, 24 Mar 2015 02:53:34 +0000 (03:53 +0100)]
Remove all JNI header, as they were unified in GlueGen commit 532b8df474976b474f0cf4eb2d93588ded2ad3fe

2 years agoBug 1148 - OSX MonitorDevice: Use unique and native deviceID instead of index
Sven Gothel [Sat, 21 Mar 2015 03:37:39 +0000 (04:37 +0100)]
Bug 1148 - OSX MonitorDevice: Use unique and native deviceID instead of index

Adopt to bug 1147, commit 2c88b6dfd4eb7e2cd9a50fa48e08ecafc980931a.

Using the native unique deviceID makes monitor identification more robust.

This also allows us simplify
  displayID -> NSScreen-idx -> MonitorDevice
into
  displayID -> MonitorDevice

and to survive a primary monitor change.

2 years agoBump oculusvr-sdk - Bug 1116 - Add OculusVR DK2 Support - Part-1 (DK2 on DK1 SDK...
Sven Gothel [Sat, 21 Mar 2015 03:33:39 +0000 (04:33 +0100)]
Bump oculusvr-sdk - Bug 1116 - Add OculusVR DK2 Support - Part-1 (DK2 on DK1 SDK w/o Eye Tracker)

2 years agoBug 1116 - Add OculusVR DK2 Support - Part-1 (DK2 on DK1 SDK w/o Eye Tracker)
Sven Gothel [Sat, 21 Mar 2015 03:31:27 +0000 (04:31 +0100)]
Bug 1116 - Add OculusVR DK2 Support - Part-1 (DK2 on DK1 SDK w/o Eye Tracker)

- DK2's screen on X11 (at least) starts in rotated mode,
  detect and apply MonitorDevice rotation via NEWT's OpenGL StereoDeviceUtil

- Move StereoDevice.Config -> StereoDeviceConfig

- Expose generic StereoDevice to public: GenericStereoDeviceConfig + GenericStereoDeviceFactory

- GenericStereoDeviceFactory exposes public GenericStereoDeviceConfig creation
  for mono, sbs-stereo and lense-sbs-stereo w/ diff. parameters.

- Pass eye surface/texture size for each eye from device to renderer,
  instead of assuming unified values.

- Unify GenericStereoDevice.createRenderer(..) and OVRStereoDevice.createRenderer(..) code

2 years agoBug 1147 - Fix XRandR13 Usage: Rotate / Change-Mode, use unique CRTC/Mode ids, ..
Sven Gothel [Fri, 20 Mar 2015 20:42:23 +0000 (21:42 +0100)]
Bug 1147 - Fix XRandR13 Usage: Rotate / Change-Mode, use unique CRTC/Mode ids, ..

RandR 1.3 XRRSetCrtcConfig related:

- X11RandR13 now sets the new screen size via XRRSetScreenSize(..)

- X11RandR13 now propagates RRScreenChangeNotify events
  via XRRUpdateConfiguration(event).
  Hence reporting virtual desktop size now.

- X11RandR13 now disables the CRTC before XRRSetCrtcConfig(..)
  to avoid invalid configuration (see spec)!

RandR 1.3 General:

- Uses unique id named instead of unstable index
  for modes and CRTC.
  This allows proper identification even for 'swizzled' devices.

2 years agoFix API Doc: GLBufferObjectTracker / GLBufferStorage
Sven Gothel [Thu, 12 Mar 2015 12:18:02 +0000 (13:18 +0100)]
Fix API Doc: GLBufferObjectTracker / GLBufferStorage

2 years agoResolve RenameJavaSymbol issues (GLUgl2 and CGL) using GLEmitter (-> DelegateImplemen... v2.3.0
Sven Gothel [Wed, 11 Mar 2015 19:42:09 +0000 (20:42 +0100)]
Resolve RenameJavaSymbol issues (GLUgl2 and CGL) using GLEmitter (-> DelegateImplementation) due to new GlueGen Semantics

GlueGen would usually use the original native C method name
for proc-address or direct call.

GLEmitter however uses the renamed method name,
assuming it is shorter and resulted from a 'RenameExtensionIntoCore' directive.

GLUgl2 native usage was broken since 2.2.4

GLUgl2 and CGL use RenameJavaSymbol w/ the intention of delegation,
hence resolve the issue using the new DelegateImplementation directive
which preserves the original function name for the native call.

2 years agoBug 1135: GLBufferObjectTracker for GL 4.5: Separate GL 4.5 DSA and GL_EXT_direct_sta...
Sven Gothel [Wed, 11 Mar 2015 16:58:52 +0000 (17:58 +0100)]
Bug 1135: GLBufferObjectTracker for GL 4.5: Separate GL 4.5 DSA and GL_EXT_direct_state_access

We cannot subsume/rename even parts of GL_EXT_direct_state_access,
since it is explcit stated in the spec that no assumption
shall be made in regards compatibility and interaction.
Hence we add both, GL 4.5 DSA and GL_EXT_direct_state_access.

2 years agoBug 1135: Complete GLBufferObjectTracker for GL 4.5 using GlueGen's DelegateImplement...
Sven Gothel [Wed, 11 Mar 2015 14:33:10 +0000 (15:33 +0100)]
Bug 1135: Complete GLBufferObjectTracker for GL 4.5 using GlueGen's DelegateImplementation/ReturnsOpaque (Bug 1144)

Using GlueGen's new DelegateImplementation/ReturnsOpaque feature (Bug 1144)
allows us to drop manually C implementation stubs, while simply delegating
into the renamed private generated variant using the manual stub.

Completed glBufferStorage and glNamedBufferStorage for GL 4.4
while subsuming DSA's of GL 4.5 and GL_EXT_direct_state_access
(only the single functions, otherwise extension is not compatible).

2 years agoBug 1135: Bump [html] doc to include GL 4.5, ES 3.1 and EGL [ 1.0 .. 1.5 ]
Sven Gothel [Wed, 11 Mar 2015 08:20:14 +0000 (09:20 +0100)]
Bug 1135: Bump [html] doc to include GL 4.5, ES 3.1 and EGL [ 1.0 .. 1.5 ]

2 years agoBug 1144: Adapt to GlueGen commit 405512e1c8a2e24834b0d057f0b020b4a0f4c25b
Sven Gothel [Wed, 11 Mar 2015 07:58:36 +0000 (08:58 +0100)]
Bug 1144: Adapt to GlueGen commit 405512e1c8a2e24834b0d057f0b020b4a0f4c25b

2 years agoMonitorDevice.toString: More brief 'options' ..
Sven Gothel [Mon, 9 Mar 2015 18:04:33 +0000 (19:04 +0100)]
MonitorDevice.toString: More brief 'options' ..

2 years agoBug 1142 - NEWT: Add support to retrieve the primary MonitorDevice
Sven Gothel [Mon, 9 Mar 2015 14:45:36 +0000 (15:45 +0100)]
Bug 1142 - NEWT: Add support to retrieve the primary MonitorDevice

Support added for
  - Windows
  - X11 XRandR 1.3
  - OSX

Note: Our whole MonitorMode association handling is currently _not_ dynamic.
 - only on Windows we actually use native unique ID,
   which might not change (adapter and monitor idx)

 - On OSX and X11 we simply use indices,
   but if monitor setup changes - they refer to different instances.

In case it is desired to cover dynamic monitor setup change,
we need to address this issue in a new bug entry.

2 years agoTestScreenMode02aNEWT: Incr. wait period, for some reason one older test machine...
Sven Gothel [Mon, 9 Mar 2015 11:50:29 +0000 (12:50 +0100)]
TestScreenMode02aNEWT: Incr. wait period, for some reason one older test machine (Linux/Ubuntu) doesn't rotate screen reliably.

2 years agoFix regression of commit 559ecad2a2387ba0aa34ce9e35ca8a2c5a31e655: IDX_MONITOR_DEVICE...
Sven Gothel [Mon, 9 Mar 2015 09:24:47 +0000 (10:24 +0100)]
Fix regression of commit 559ecad2a2387ba0aa34ce9e35ca8a2c5a31e655: IDX_MONITOR_DEVICE_VIEWPORT needed to be updated!

2 years agoBug 1135 - (Re-)Include GL header for in generated native code, allowing 'ProcAddrTyp...
Sven Gothel [Mon, 9 Mar 2015 07:57:24 +0000 (08:57 +0100)]
Bug 1135 - (Re-)Include GL header for in generated native code, allowing 'ProcAddrTypedef' validation

Include GL header for in generated native code,
since we need the public 'ProcAddrTypedef' to be validated
against the GlueGen generated variant by the c-compiler.

The 'ProcAddrTypedef' validation semantic has been
introduced in GlueGen w/ commit 10060b091b76bee35246c5165d49ab546ebc4e37.

Originally the GL header were always included,
however, JOGL commit 0d59bd4c655ef9a27f127000848aae7f07f240ae
removed the inclusion to simplify handling GL extension collisions
mitigated via gl*-supplement.h. The latter produces 'redefine'
errors via c-compiler.

The 'redefine' issue above is resolved
by conditional code (#ifdef __GLUEGEN__ ..)
in glext-supplement.h.

2 years agoBug 1134 - Use ASTLocationTag in Logging
Sven Gothel [Sat, 7 Mar 2015 23:07:29 +0000 (00:07 +0100)]
Bug 1134 - Use ASTLocationTag in Logging

Adapt to GlueGen commit da909f84dc8421052c92491baa7dd90e1c78dc8f

2 years agoMerge remote-tracking branch 'origin/master'
Sven Gothel [Fri, 6 Mar 2015 18:20:48 +0000 (19:20 +0100)]
Merge remote-tracking branch 'origin/master'

2 years agoBump to oculusvr-sdk cleanup
Sven Gothel [Fri, 6 Mar 2015 09:05:39 +0000 (10:05 +0100)]
Bump to oculusvr-sdk cleanup

2 years agoBug 1135 - Cleanup: Class ownership change of static GL enumerates
Sven Gothel [Fri, 6 Mar 2015 09:03:59 +0000 (10:03 +0100)]
Bug 1135 - Cleanup: Class ownership change of static GL enumerates

GLBufferStateTracker now also supports GL4.GL_QUERY_BUFFER

2 years agoBug 1135 - Cleanup: Fix native code Warning
Sven Gothel [Fri, 6 Mar 2015 09:02:03 +0000 (10:02 +0100)]
Bug 1135 - Cleanup: Fix native code Warning

2 years agoBug 1135 - GL/GLContext: Add isGLES31Compatible()
Sven Gothel [Fri, 6 Mar 2015 09:01:02 +0000 (10:01 +0100)]
Bug 1135 - GL/GLContext: Add isGLES31Compatible()

2 years agoBug 1135 - Cleanup: Remove GL_NV_vertex_array_range extension support in GLContext
Sven Gothel [Fri, 6 Mar 2015 08:59:44 +0000 (09:59 +0100)]
Bug 1135 - Cleanup: Remove GL_NV_vertex_array_range extension support in GLContext

2 years agoBug 1135 - Change JOGL's GlueGen Plugin to support EGL 1.5 , ES 3.1 and GL 4.5
Sven Gothel [Fri, 6 Mar 2015 08:55:52 +0000 (09:55 +0100)]
Bug 1135 - Change JOGL's GlueGen Plugin to support EGL 1.5 , ES 3.1 and GL 4.5

- BuildStaticGLInfo
  - Needs to allow 3rd if-def block in header files

- GLConfiguration Changes
  - 'GLHeader' -> 'GLSemHeader' + 'GLDocHeader'
    This allows us to provide all header files,
    exposing all cross-references (extensions and aliases) for our API doc.

    However, inclusions/exclusion semantics
    shall only operate on the actual header files
    used for code generation.

  - All AliasedSymbol's extensions must be covered by 'IgnoredExtension'
    to be excluded.

  - Sync w/ GlueGen commit 5f66fafec303de7d7904a499fefb8e3d023b61ae

2 years agoBug 1135 - Add supplemental (overriding) GL header, fixing collisions of certain...
Sven Gothel [Fri, 6 Mar 2015 08:46:52 +0000 (09:46 +0100)]
Bug 1135 - Add supplemental (overriding) GL header, fixing collisions of certain extensions

2 years agoBug 1135 - Change all GlueGen config files, supporting EGL 1.5 , ES 3.1 and GL 4.5
Sven Gothel [Fri, 6 Mar 2015 08:45:48 +0000 (09:45 +0100)]
Bug 1135 - Change all GlueGen config files, supporting EGL 1.5 , ES 3.1 and GL 4.5

2 years agoBug 1135 - Fix other GL header and windows-system header
Sven Gothel [Fri, 6 Mar 2015 08:42:13 +0000 (09:42 +0100)]
Bug 1135 - Fix other GL header and windows-system header

- GL/gl.h: remove added gl-types.h include, which causes 'redefined' warnings or errors.

- GLES/glext.h: Use vanilla 'typedef void* GLeglImageOES'

- opengl/gl-types.h: Complete all GL types

- Fix windows.h and all its related header

2 years agoBug 1135 - Support EGL 1.5 , ES 3.1 and GL 4.5 - Part 3: Minimal patch of vanilla...
Sven Gothel [Fri, 6 Mar 2015 08:38:16 +0000 (09:38 +0100)]
Bug 1135 - Support EGL 1.5 , ES 3.1 and GL 4.5 - Part 3: Minimal patch of vanilla GL headers (Fix last patch)

Last patch of vanilla header, commit 47713518e3317b2621ee7ff1bbf8223fbce7fdc4,
added gl-types.h include, which causes 'redefined' warnings or errors.

Removed.

- GL/glcorearb.h      2015-02-02 - #include "gl-types.h"
- GL/glext.h          2015-02-02 - #include "gl-types.h"

2 years agoBug 1135 - Support EGL 1.5 , ES 3.1 and GL 4.5 - Part 2: Minimal patch of vanilla...
Sven Gothel [Thu, 5 Mar 2015 03:42:43 +0000 (04:42 +0100)]
Bug 1135 - Support EGL 1.5 , ES 3.1 and GL 4.5 - Part 2: Minimal patch of vanilla GL headers

New vanilla GL headers were dropped w/ commit 6b05c6919f3df20ce0b55d5ac7dda7b14068568e.

- egl/EGL/eglplatform.h:     2013-10-09 +generic void pointer for EGLNative*Type

- khr/KHR/khrplatform.h:     2013-09-30 +using 'our' GlueGen stdint types, hence reduced

- GL/glcorearb.h:            2015-02-02 +using 'our' stdint- and platform types

- GL/glext.h:                2015-02-02 +using 'our' stdint- and platform types

2 years agoBug 1135 - Support EGL 1.5 , ES 3.1 and GL 4.5 - Part 1: Update header to latest...
Sven Gothel [Thu, 26 Feb 2015 01:58:56 +0000 (02:58 +0100)]
Bug 1135 - Support EGL 1.5 , ES 3.1 and GL 4.5 - Part 1: Update header to latest version

- khr/KHR/khrplatform.h:     2013-09-30 vanilla
- opengl/GLES3/khrplatform.h *removed* -> khr/KHR/khrplatform.h

- egl/EGL/egl.h:             2015-01-02 vanilla
- egl/EGL/eglext.h:          2015-01-02 vanilla
- egl/EGL/eglplatform.h:     2013-10-09 vanilla

- opengl/GLES2/gl2.h:        2015-01-22 vanilla
- opengl/GLES2/gl2ext.h      2015-01-26 vanilla
- opengl/GLES2/gl2platform.h 2013-10-02 vanilla

- opengl/GLES3/gl3.h         *removed* -> opengl/GLES3/gl31.h
- opengl/GLES3/gl31.h        2015-01-22 vanilla
- opengl/GLES3/gl3platform.h 2013-10-02 vanilla

- opengl/GL/glcorearb.h      2015-02-02 vanilla
- opengl/GL/glext.h          2015-02-02 vanilla
- opengl/GL/glxext.h         2014-09-18 vanilla
- opengl/GL/wglext.h         2014-08-11 vanilla

2 years agoBug 1130 - Add Mapping from AWT Component -> NEWT [Screen, MonitorDevice]
Sven Gothel [Tue, 17 Feb 2015 06:30:34 +0000 (07:30 +0100)]
Bug 1130 - Add Mapping from AWT Component -> NEWT [Screen, MonitorDevice]

The mapping AWT Component -> NEWT [Screen, MonitorDevice]
shall allow generic AWT applications to utilize NEWT's MonitorDevice
information like physical monitor-size and DPI.

- AWT-Component -> NEWT-Display:
  - NewtFactoryAWT.createDisplay

- AWT-Component -> NEWT-Screen:
  - NewtFactoryAWT.createScreen

- AWT-Component -> NEWT-MonitorMode:
  - NewtFactoryAWT.getMonitorDevice

- NewtFactoryAWT.getMonitorDevice
  - If OSX, utilizing OSX's AWT Component -> MonitorDevice-Index mapping
  - Otherwise using the coverage to identify MonitorDevice

See TestGearsES2GLJPanelAWT 'GetPixelScale',
demonstrating the mapping while pressing 'p' (cached MonitorMode)
and pressing SHIFT-'p' (non-cached MonitorMode).

2 years agoNativeWindow: Refactor getLocationOnScreenSafe(..) and getLocationOnScreenNonBlocking...
Sven Gothel [Tue, 17 Feb 2015 04:43:52 +0000 (05:43 +0100)]
NativeWindow: Refactor getLocationOnScreenSafe(..) and getLocationOnScreenNonBlocking(..) from JAWTWindow -> AWTMisc (to be reused)

2 years agoMonitorDevice: Add 'throws IllegalStateException' for [query|set]CurrentMode(..)...
Sven Gothel [Tue, 17 Feb 2015 04:41:45 +0000 (05:41 +0100)]
MonitorDevice: Add 'throws IllegalStateException' for [query|set]CurrentMode(..) if !screen.isNativeValid()

2 years agoNativeWindowFactory: Add FIXME tag regarding Bug 973 (Needs service provider interfac...
Sven Gothel [Tue, 17 Feb 2015 04:37:49 +0000 (05:37 +0100)]
NativeWindowFactory: Add FIXME tag regarding Bug 973 (Needs service provider interface (SPI) for TK dependent implementation) ..

Also:

- add 'AbstractGraphicsDevice createDevice(final String nwt, ..)' variant
  for explicit TK type passing.

- 'AbstractGraphicsDevice createDevice(..)'
  uses DefaultGraphicsDevice for generic TK types, but TYPE_EGL and TYPE_AWT

2 years agoFix commit 559ecad2a2387ba0aa34ce9e35ca8a2c5a31e655 (ArrayHashSet<MonitorDevice>...
Sven Gothel [Tue, 17 Feb 2015 00:30:03 +0000 (01:30 +0100)]
Fix commit 559ecad2a2387ba0aa34ce9e35ca8a2c5a31e655 (ArrayHashSet<MonitorDevice> instance erroneously added)

Revert useless ArrayHashSet<MonitorDevice> instance erroneously
added in commit 559ecad2a2387ba0aa34ce9e35ca8a2c5a31e655.

2 years agoNEWT MonitorDevice: Identify cloned devices (fully covered) ; Windows: Iterate-over...
Sven Gothel [Tue, 17 Feb 2015 00:14:49 +0000 (01:14 +0100)]
NEWT MonitorDevice: Identify cloned devices (fully covered) ; Windows: Iterate-over and identify all adapter:monitor. (Bug 1129)

- Identify cloned devices (fully covered)
  - MonitorDevice gets 'isCloned()' to identify whether
    it is a cloned device, i.e. fully covered by another monitor.
    This detection may happen natively but will always performed
    platform agnostic.

  - getMainMonitor(..) now exclude 'cloned' devices

- Windows: Iterate-over and identify all adapter:monitor
  - Since we also list cloned monitor,
    we need to iterate over all adapter and all it's monitor-devices.
  - The native monitor-id is now defined as: ( adapter-idx << 8 ) | monitor-idx.

- Bug 1129 <- listed under this bug entry for convenience

2 years agoFix typo: PixelFormat.Composition.[componenCount() -> componentCount()]
Sven Gothel [Mon, 16 Feb 2015 05:39:52 +0000 (06:39 +0100)]
Fix typo: PixelFormat.Composition.[componenCount() -> componentCount()]

.. thx to Julien Gouesse's review.

2 years agoBug 1129 - NEWT MonitorDevice's physical size on Windows must be read via EDID
Sven Gothel [Mon, 16 Feb 2015 05:23:43 +0000 (06:23 +0100)]
Bug 1129 - NEWT MonitorDevice's physical size on Windows must be read via EDID

On Windows, one must read the monitor's EDID data as stored in the registry,
no 'simple' API works otherwise.

The proper way requires utilizing the Windows Setup-API.

This code is inspired by Ofek Shilon's code and blog post:
   <http://ofekshilon.com/2014/06/19/reading-specific-monitor-dimensions/>
   See: function 'NewtEDID_GetMonitorSizeFromEDIDByModelName'

In contrast to Ofek's code, function 'NewtEDID_GetMonitorSizeFromEDIDByDevice'
uses the proper link from
     DISPLAY_DEVICE.DeviceID -> SP_DEVICE_INTERFACE_DETAIL_DATA.DevicePath,
where DISPLAY_DEVICE.DeviceID is the monitor's enumeration via:
     EnumDisplayDevices(adapterName, monitor_idx, &ddMon, EDD_GET_DEVICE_INTERFACE_NAME);
Hence the path to the registry-entry is well determined instead of just comparing
the monitor's model name.

2 years agoMerge pull request #86 from android-native-libraries/master
Sven Gothel [Sat, 14 Feb 2015 01:55:01 +0000 (02:55 +0100)]
Merge pull request #86 from android-native-libraries/master

adding support for Android x86 platforms

2 years agoFFMPEGMediaPlayer: Add support for libav-11 and ffmpeg 2.[4-x] (Latest release, used...
Sven Gothel [Thu, 5 Feb 2015 15:27:56 +0000 (16:27 +0100)]
FFMPEGMediaPlayer: Add support for libav-11 and ffmpeg 2.[4-x] (Latest release, used in Debian 8, etc)

2 years agoFix FFMPEGMediaPlayer: static init block issue, libavresample debian8 packaging
Sven Gothel [Thu, 5 Feb 2015 03:35:51 +0000 (04:35 +0100)]
Fix FFMPEGMediaPlayer: static init block issue, libavresample debian8 packaging

- static init block issue
  commit 06a05d30fc026b21f59310986ea9eb7f3ff30d54
  used a static final field initialized after the static {} block
  which was still null if called -> moved above static {}

- libavresample debian8 packaging
  Debian8 packages a libav10 combination w/ libavresample version 2,
  which actually belongs to libav11 - libav10 uses libarvresample version 1.
  Allow libavresample and libswresample to be selectively skipped if version mismatch.

2 years agoAdd missing privileged section for NativeLibrary lookup: GLContextImpl and FFMPEGDyna...
Sven Gothel [Wed, 4 Feb 2015 23:25:48 +0000 (00:25 +0100)]
Add missing privileged section for NativeLibrary lookup: GLContextImpl and FFMPEGDynamicLibraryBundleInfo

Since GlueGen security fix commit 12feaa7d3b1544098f684d851e3caff1ec88cbc8
and its cleanup dd2440cbadc642a561d8f92c502fe822b2f11762
the GLContextImpl func lookup caused a security exception.

Applied fix to FFMPEGDynamicLibraryBundleInfo as well.

2 years agoBug 1068 - Fix issue w/ unifying Surfaceless probing (commit 2120be14c7525ef051d105f9...
Sven Gothel [Tue, 3 Feb 2015 20:18:02 +0000 (21:18 +0100)]
Bug 1068 - Fix issue w/ unifying Surfaceless probing (commit 2120be14c7525ef051d105f9bb02294f78d17d28)

Commit 2120be14c7525ef051d105f9bb02294f78d17d28
caused GLDrawableFactoryImpl.probeSurfacelessCtx(..)
to be only called if appropriate, hence GLRendererQuirks.NoSurfacelessCtx
was not set otherwise.

This patch adds the required 'else' branch for the case
GLDrawableFactoryImpl.probeSurfacelessCtx(..) is not called
and issues GLDrawableFactoryImpl.setNoSurfacelessCtxQuirk(..).

+++

Add Note to EGLDrawableFactory's shutdown:
  "sr.device.close() Issues eglTerminate(), which may cause SIGSEGV w/ NVIDIA 343.36 w/ TestGLProfile01NEWT"

However keep this code enabled, since this seems to be a driver issue.

+++

2 years agoAdd javadoc arg (property 'javadoc.xarg1') '-Xdoclint:none' if java >= 1.8 (GlueGen...
Sven Gothel [Tue, 3 Feb 2015 02:16:10 +0000 (03:16 +0100)]
Add javadoc arg (property 'javadoc.xarg1') '-Xdoclint:none' if java >= 1.8 (GlueGen commit d8dff4c9f2186749b167195eeb339c33f56864e8)

2 years agoAdapt APK install scripts for harmonized os.and.arch names, see GlueGen commit 3b43a2...
Sven Gothel [Mon, 2 Feb 2015 21:27:25 +0000 (22:27 +0100)]
Adapt APK install scripts for harmonized os.and.arch names, see GlueGen commit 3b43a223253176731567c6d8b7a67c9a6110782b

2 years agoBug 682 - Relocating javax.media.opengl.* -> com.jogamp.opengl.* (Part 3)
Sven Gothel [Mon, 2 Feb 2015 01:44:49 +0000 (02:44 +0100)]
Bug 682 - Relocating javax.media.opengl.* -> com.jogamp.opengl.* (Part 3)

2 years agoBug 682 - Relocating javax.media.opengl.* -> com.jogamp.opengl.* (Part 2)
Sven Gothel [Mon, 2 Feb 2015 01:38:55 +0000 (02:38 +0100)]
Bug 682 - Relocating javax.media.opengl.* -> com.jogamp.opengl.* (Part 2)

Relocation javax.media.nativewindow.* -> com.jogamp.nativewindow.*
Relocation javax.media.opengl.* -> com.jogamp.opengl.*

2 years agoBug 682 - Relocating javax.media.opengl.* -> com.jogamp.opengl.* (Part 1)
Sven Gothel [Mon, 2 Feb 2015 01:36:39 +0000 (02:36 +0100)]
Bug 682 - Relocating javax.media.opengl.* -> com.jogamp.opengl.* (Part 1)

sed -i 's/javax\.media\.opengl/com\.jogamp\.opengl/g' `grep -Rl "javax\.media\.opengl" src`
sed -i 's/javax\.media\.nativewindow/com\.jogamp\.nativewindow/g' `grep -Rl "javax\.media\.nativewindow" src`
sed -i 's/javax\/media\//com\/jogamp\//g' `grep -Rl "javax/media/" src`
sed -i 's/javax\/media\//com\/jogamp\//g' `grep -Rl "javax/media/" doc`

Manually edited all occurences within make/**

2 years agoAdd FIXME notes: AWTPrintLifecycle, WindowsWGLGraphicsConfiguration
Sven Gothel [Sun, 1 Feb 2015 23:27:35 +0000 (00:27 +0100)]
Add FIXME notes: AWTPrintLifecycle, WindowsWGLGraphicsConfiguration

2 years agoBug 1126: Adobt GlueGen commit 7db9df61142694965b50f2e0553d4c9e5668439b
Sven Gothel [Sun, 1 Feb 2015 23:25:05 +0000 (00:25 +0100)]
Bug 1126: Adobt GlueGen commit 7db9df61142694965b50f2e0553d4c9e5668439b

2 years agoBug 1124 - Refine AArch64 Linux in ant build recipe, add Android AArch64 build/instal...
Sven Gothel [Fri, 30 Jan 2015 20:30:51 +0000 (21:30 +0100)]
Bug 1124 - Refine AArch64 Linux in ant build recipe, add Android AArch64 build/install scripts

2 years agoBug 1124 - Android Build: Use SDK >= 24.0.2 (build-tools >= 21.1.2) and NDK >= 10d
Sven Gothel [Wed, 28 Jan 2015 01:09:18 +0000 (02:09 +0100)]
Bug 1124 - Android Build: Use SDK >= 24.0.2 (build-tools >= 21.1.2) and NDK >= 10d

2 years agoFix UbuntuFontLoader: Regression of commit bd24599b21f9787ac989e65b44dc1ba762162f22
Sven Gothel [Tue, 27 Jan 2015 18:52:28 +0000 (19:52 +0100)]
Fix UbuntuFontLoader: Regression of commit bd24599b21f9787ac989e65b44dc1ba762162f22

Commit bd24599b21f9787ac989e65b44dc1ba762162f22 removed font loading w/o TempJarCache,
e.g. as used on Android.

2 years agoBug 1110 - Fix missing native function eglGetConfigAttributes on jogl_mobile.dll
Sven Gothel [Tue, 27 Jan 2015 09:47:29 +0000 (10:47 +0100)]
Bug 1110 - Fix missing native function eglGetConfigAttributes on jogl_mobile.dll

Fix regression of commit cf1163fc88976e7087d3a17524a49139e35a4708,
i.e. missing function calling convention and return type qualifier
for 'Java_com_jogamp_opengl_egl_EGL_dispatch_1eglGetConfigAttributes':
  JNIEXPORT void JNICALL

This lead to its exclusion in the resulting Windows dll.

2 years agoBug 1120 - Refine HiDPI Support ( Part-2 ) (API CHANGE)
Sven Gothel [Mon, 26 Jan 2015 23:49:51 +0000 (00:49 +0100)]
Bug 1120 - Refine HiDPI Support ( Part-2 ) (API CHANGE)

- Use float[2] for pixel-scale.
  Utilize simple integer rounding:
    int-pixel-units = (int) ( int-window-units * pixel-scale + 0.5f )

- Provide minimum and maximum allowed pixel-scale values
  to be set by platform, supporting generic pixel-scale validation.

- Remove 'OSXUtil.GetPixelScale(final RectangleImmutable r, final int[] screenIndexOut)',
  implementation for all platforms would cause huge redundancy of
  Screen and MonitorDevice code (duplication of NEWT).

- instead, add 'float[2] pixelScale' to NEWT's MonitorDevice

- Detect change of pixel-scale and propagate accordingly.
  This allows GLCanvas, GLJPanel and NewtCanvasAWT instances
  to be dragged between monitor devices w/ different pixel-scale.

- OSX: Handle native triggered reshape events off-thread to avoid EDT congestion
       due to locked window when consuming deferred events on EDT.

2 years agoGLContextImpl.makeCurrentImpl(): Remove redundant test whether context is already...
Sven Gothel [Fri, 23 Jan 2015 22:34:39 +0000 (23:34 +0100)]
GLContextImpl.makeCurrentImpl(): Remove redundant test whether context is already current

- GLContextImpl.makeCurrentImpl(): Remove redundant test whether context is already current
  GLContext.makeCurrent() already verifies whether native makeCurrent can be skipped
  by comparing against the thread-local current GLContext instance.

- Add X11GLXContext.glXReleaseContext(..) to simplify release call

2 years agoBug 1096 - Add missing EGLContext.c native code
Sven Gothel [Fri, 23 Jan 2015 21:08:41 +0000 (22:08 +0100)]
Bug 1096 - Add missing EGLContext.c native code

As required for commit d0676451343e826e49d9c5732320f080d4c11c8d

2 years agoBug 1068 - Unify Surfaceless probing; Fix Surfaceless for OSX and Windows (probing...
Sven Gothel [Fri, 23 Jan 2015 21:03:45 +0000 (22:03 +0100)]
Bug 1068 - Unify Surfaceless probing; Fix Surfaceless for OSX and Windows (probing, etc)

- Unify surfaceless probing
  GLDrawableFactoryImpl.probeSurfacelessCtx(..) implements surfaceless probing for all platforms

- Fix Surfaceless for OSX (probing, etc)
  - Handle 'surfaceless' mode in MacOSXCGLContext impl
  - MacOSXCGLDrawableFactory.getOrCreateSharedResourceImpl adds surfaceless probing

- Fix Surfaceless for Windows (probing, etc)
  - WindowsWGLContext.wglMakeContextCurrent(..)
    - Split release code into WindowsWGLContext.wglReleaseContext(..)
      allowing to handle zero HDC.
  - WindowsWGLGraphicsConfigurationFactory.updateGraphicsConfiguration(..)
    - Skip HDC -> PFD handling for
  - WindowsWGLDrawableFactory.createSharedResource adds surfaceless probing

2 years agoMisc Fix: GLContext*; Refine DEBUG output in GLDrawableFactory's createShareResource
Sven Gothel [Fri, 23 Jan 2015 19:36:13 +0000 (20:36 +0100)]
Misc Fix: GLContext*; Refine DEBUG output in GLDrawableFactory's createShareResource

- Fix GLContext.makeCurrent() API doc for 'throws GLException'

- Fix GLContext.makeCurrentResultToString(int): CONTEXT_CURRENT_NEW -> "CONTEXT_CURRENT_NEW"

- Fix GLContextImpl.setGLDrawable(..)
  - Catch Throwable instead of GLException to not loose other cases

- Fix GLContextImpl.makeCurrent(..)
  - Use const l-value in branch expression
  - fix semantic typo: validate -> validated

- Refine DEBUG output in GLDrawableFactory's createShareResource
  - Enable DEBUG via GLContext.DEBUG as well
    to ease analysis w/o drawable DEBUG output

2 years agoBug 896: Refine criteria to allow OpenGL API usage for EGL
Sven Gothel [Fri, 23 Jan 2015 14:13:10 +0000 (15:13 +0100)]
Bug 896: Refine criteria to allow OpenGL API usage for EGL

It has been experienced w/ Mesa 10.3.2 (EGL 1.4/Gallium)
that even though initial OpenGL context can be created w/o 'EGL_KHR_create_context',
switching the API via 'eglBindAPI(EGL_OpenGL_API)' the latter 'eglCreateContext(..)' fails w/ EGL_BAD_ACCESS.

Hence we require both: OpenGL API support _and_  'EGL_KHR_create_context'.

FIXME: Evaluate this issue in more detail!

FIXME: Utilization of eglBindAPI(..) must be re-evaluated in case we mix ES w/ OpenGL, see EGL 1.4 spec.
       This is due to new semantics, i.e. API is bound on a per thread base,
   hence it must be switched before makeCurrent w/ different APIs, see:
          eglWaitClient();

2 years agoSimplify GLDrawable[Impl|Factory].getGLDynamicLookupHelper(..)
Sven Gothel [Fri, 23 Jan 2015 14:10:20 +0000 (15:10 +0100)]
Simplify GLDrawable[Impl|Factory].getGLDynamicLookupHelper(..)

- Using GLDrawableFactory.getGLDynamicLookupHelper(String profileName)
  - Based on String GLProfile name
  - throws GLException if no lookup handler installed (EGL)

- final implementation of GLDrawableImpl.getGLDynamicLookupHelper()
  using getGLProfile().getImplName()

2 years agoBug 1038: Refine handling of GLRendererQuirks.NoARBCreateContext
Sven Gothel [Fri, 23 Jan 2015 13:55:11 +0000 (14:55 +0100)]
Bug 1038: Refine handling of GLRendererQuirks.NoARBCreateContext

- GLRendererQuirks.NoARBCreateContext is set static per device
- Property GLProfile.disableOpenGLARBContext sets static GLRendererQuirks.NoARBCreateContext
- Centralize handling in GLContextImpl.createContextARB(..)

2 years agoResolve merge conflict GLRendererQuirks
Sven Gothel [Fri, 23 Jan 2015 00:43:28 +0000 (01:43 +0100)]
Resolve merge conflict GLRendererQuirks

2 years agoBug 1100: Fix href to 'lifecycleHeavy' -> '#lifecycleHeavy' (anchor)
Sven Gothel [Fri, 23 Jan 2015 00:34:19 +0000 (01:34 +0100)]
Bug 1100: Fix href to 'lifecycleHeavy' -> '#lifecycleHeavy' (anchor)

2 years agoMerge remote-tracking branch 'remotes/github-mark/master'
Sven Gothel [Fri, 23 Jan 2015 00:29:32 +0000 (01:29 +0100)]
Merge remote-tracking branch 'remotes/github-mark/master'

2 years agoBug 1120 - Add OSXUtil.GetPixelScale(final RectangleImmutable r, final int[] screenIn...
Sven Gothel [Fri, 23 Jan 2015 00:20:33 +0000 (01:20 +0100)]
Bug 1120 - Add OSXUtil.GetPixelScale(final RectangleImmutable r, final int[] screenIndexOut) ( Part-1 )

2 years agoBug 1119 - GL* Efficiency: Keep ProcAddressTable instance within GL* instances
Sven Gothel [Thu, 22 Jan 2015 23:53:47 +0000 (00:53 +0100)]
Bug 1119 - GL* Efficiency: Keep ProcAddressTable instance within GL* instances

2 years agoBug 1096 - Expose EGL to public: com.jogamp.opengl.egl.EGL ; EGLDrawableFactory:...
Sven Gothel [Thu, 22 Jan 2015 23:48:16 +0000 (00:48 +0100)]
Bug 1096 - Expose EGL to public: com.jogamp.opengl.egl.EGL ; EGLDrawableFactory: Validate static EGL func-ptr, probe EGL/ES2 first

- Move EGL to public package
  jogamp.opengl.egl.EGL -> com.jogamp.opengl.egl.EGL

- EGLDrawableFactory
  - Validate static EGL func-ptr against EGL/ES2,
    ignoring EGL/[ES|GL] collisions w/ diff. native EGL implementations
    due to static EGL usage.

  - Probe EGL/ES2 first

2 years agoFBObject: indentation / DEBUG output cleanup
Sven Gothel [Thu, 22 Jan 2015 23:07:28 +0000 (00:07 +0100)]
FBObject: indentation / DEBUG output cleanup

2 years agoBug 1068 - Use GenericUpstreamSurfacelessHook for all createSurfacelessImpl(..) imple...
Sven Gothel [Thu, 22 Jan 2015 23:04:29 +0000 (00:04 +0100)]
Bug 1068 - Use GenericUpstreamSurfacelessHook for all createSurfacelessImpl(..) implementations

2 years agoadded support for Android x86 platforms
Xavier Hallade [Thu, 8 Jan 2015 16:30:13 +0000 (17:30 +0100)]
added support for Android x86 platforms

2 years agoBug 1107: Add missing unit test
Sven Gothel [Sun, 7 Dec 2014 03:20:05 +0000 (04:20 +0100)]
Bug 1107: Add missing unit test

2 years agoMisc Fixes: Bug 1102 GLJPanel.setSurfaceScale(..); SurfaceSize.hashCode()
Sven Gothel [Sun, 7 Dec 2014 03:14:36 +0000 (04:14 +0100)]
Misc Fixes: Bug 1102 GLJPanel.setSurfaceScale(..); SurfaceSize.hashCode()

- Bug 1102: GLJPanel.setSurfaceScale(..)
  Allow setting non-initialized GLJPanel surface scale.
  TODO: More tests and probing before initialization.

- SurfaceSize.hashCode()
  Resolution's hash code is already multiplied.

2 years agoBug 1068 - Allow GLContext creation and makeCurrent without default framebuffer ...
Sven Gothel [Sun, 7 Dec 2014 03:03:02 +0000 (04:03 +0100)]
Bug 1068 - Allow GLContext creation and makeCurrent without default framebuffer (Part 2); Bug 896: EGL_KHR_create_context (Part 1)

Bug 1068 - Allow GLContext creation and makeCurrent without default framebuffer (Part 2)

Implement surfaceless context on EGL and GLX/X11
utilizing *UpstreamSurfacelessHook as introduced in
commit 9ea218a5990b908e04235c407c0951c60df6ffba.

Surfaceless context is probed during GL profile probing by default.
If available, it will be used for offscreen FBO drawables.
If probing fails, or is disabled,
the new GLRendererQuirks.NoSurfacelessCtx is set.

- GLProfile.disableSurfacelessContext disables
  surfaceless context probing, set property 'jogl.disable.surfacelesscontext'

Tested:
  - Mesa/EGL works,
  - Mesa + NVidia w/ GLX fail on GNU/Linux): Fails NoSurfacelessCtx

- TODO: Windows impl. and more tests

+++

Bug 896: EGL_KHR_create_context (Part 1)

- Detect EGL_KHR_create_context capability and utilize if available.

- Implement EGLContext.createContextARBImpl(..),
  allowing native DEBUG context usage, where available.

- EGL implements SharedResourceRunner, i.e. probing profiles
  on dedicated thread using common interface.

- Probe desktop profile/context ability
  in EGLDrawableFactory SharedResourceRunner,
  Where EGLGLnDynamicLibraryBundleInfo covers EGL + desktop GL.

- TODO: Tests w/ capable implementation

2 years agoBug 1068, 1096: Unify EGL surface related code in EGLSurface; Add notion of 'Surfacel...
Sven Gothel [Sun, 7 Dec 2014 02:40:07 +0000 (03:40 +0100)]
Bug 1068, 1096: Unify EGL surface related code in EGLSurface; Add notion of 'Surfaceless Upstream Surface'

Preparation for Bug 1068: GLContext creation and makeCurrent without default framebuffer

- Unify EGL surface related code in EGLSurface
  - EGLWrappedSurface -> EGLSurface,
    which utilizes a more straight forward
    foreign upstream surface (X11, GDI, ..) to EGL mapping.
  This also addresses Bug 1096, i.e. EGL Cleanup.

- Add notion of 'Surfaceless Upstream Surface'
  - Add surfaceless 'fake' upstream surface hooks:
    - EGLUpstreamSurfacelessHook
    - X11UpstreamSurfacelessHook
    Utilizing the ProxySurface option bit 'OPT_UPSTREAM_SURFACELESS'
    signaling usage of 'no surface'.

  - Add GLDrawableFactoryImpl.createSurfacelessImpl(..)

2 years agoBug 1107 - Refine PixelFormat, GLPixelBuffer and DirectDataBufferInt/BufferedImageInt
Sven Gothel [Sat, 6 Dec 2014 20:12:18 +0000 (21:12 +0100)]
Bug 1107 - Refine PixelFormat, GLPixelBuffer and DirectDataBufferInt/BufferedImageInt

- PixelFormat
  Refine definition allowing complete format conversion by its attributes
  instead of static 'knowledge'.

  - PixelFormat has_a *new* PixelFormat.Composition

  - PixelFormat.Composition contains all pixel component layout
    information as required for inspection and conversion.
    Component names are enumerated via PixelFormat.CType.

  - PixelFormatUtil.convert(..) utilizes generic conversion
    based on PixelFormat.Composition rather static type mapping.
    However, a int32 RGBA static conversion is still supported for performance.
    Utilizes Bitstream for varying pixel component bit-width.

  - Complete w/ hashCode() and equals(..)

- GLPixelBuffer
  - Take 'pack' mode into account when determine GLPixelAttributes,
    i.e. on GLES pack=true (e.g. glReadPixel) only RGBA is guaranteed to work.
    Hence querying GLPixelAttributes requires the GLProfile, PixelFormat and pack mode.

  - Complete GLPixelAttributes conversions from PixelFormat or GL format/data-type,
    while taking GL data-type into account, as well as pack-mode.

  - Complete w/ hashCode() and equals(..)

  - SingletonGLPixelBufferProvider queries singleton GLPixelBuffer via
      - PixelFormat.Composition hostPixelComp,
      - GLPixelAttributes pixelAttributes,
      - boolean pack
    which comprise a unique key, allowing the implementation to utilize
    a hash map. This is implemented in AWTSingletonGLPixelBufferProvider.
    This allows distinct singleton GLPixelBuffer for different
    host PixelFormat (conversion) and GLPixelAttributes (depending on GLProfile).

  - Removes field 'componentCount' which was 'hacked in' to pass
    information about an optional host memory layout.
    Implementations utilizing conversion, e.g. AWTGLPixelBuffer,
    can implement GLPixelBufferProvider's
      'PixelFormat.Composition getHostPixelComp(final GLProfile glp, final int componentCount)'
    and manage such implementation details, see use-case GLJPanel.

- DirectDataBufferInt/BufferedImageInt: Expose underlying NIO ByteBuffer

- AWTMisc.createCursor(..) uses DirectDataBufferInt.BufferedImageInt exposed
  NIO ByteBuffer, allowing to use generic PixelFormatUtil.convert(..).

2 years agoBug 1106: JPEGDecoder adopt to GlueGen Bitstream change commit 9e13e8c78ed69bb7afcd49...
Sven Gothel [Sat, 6 Dec 2014 19:26:46 +0000 (20:26 +0100)]
Bug 1106: JPEGDecoder adopt to GlueGen Bitstream change commit 9e13e8c78ed69bb7afcd49abe8bf69340dc06223

2 years agoMinor Cleanup (FBObject, GLBase)
Sven Gothel [Sat, 6 Dec 2014 19:24:26 +0000 (20:24 +0100)]
Minor Cleanup (FBObject, GLBase)

FBObject: Remove redudant case

GLBase: Add API doc reference to GLContext implementation

2 years agoFix typo
Mark Raynsford [Tue, 28 Oct 2014 20:55:20 +0000 (20:55 +0000)]
Fix typo

2 years agoBug 1100 - Document lifecycle-heavy concept and mark some of the relevant methods.
Mark Raynsford [Tue, 28 Oct 2014 20:46:31 +0000 (20:46 +0000)]
Bug 1100 - Document lifecycle-heavy concept and mark some of the relevant methods.

2 years agoUse ExceptionUtils.dumpStack(..) instead of Thread.dumpStack()
Sven Gothel [Sun, 26 Oct 2014 01:22:50 +0000 (02:22 +0100)]
Use ExceptionUtils.dumpStack(..) instead of Thread.dumpStack()

2 years agoGLContext.Version* VersionNumber Constants: Clarify names, avoiding mis-interpretatio...
Sven Gothel [Fri, 24 Oct 2014 22:33:58 +0000 (00:33 +0200)]
GLContext.Version* VersionNumber Constants: Clarify names, avoiding mis-interpretation alike Version130 -> [ 1.3.0 | 1.30.0 ] ?

2 years agoFloatUtil.makeFrustum(..): Add throws GLException API doc / Add GLException if zNear...
Sven Gothel [Fri, 24 Oct 2014 22:11:08 +0000 (00:11 +0200)]
FloatUtil.makeFrustum(..): Add throws GLException API doc / Add GLException if zNear == zFar

throws GLException with GL_INVALID_VALUE if zNear is <= 0, or zFar < 0,
or if left == right, or bottom == top, or zNear == zFar

Add note on callers:
  - FloatUtil.makePerspective(..)
  - Matrix4.*
  - PMVMatrix.*
  - ProjectFloat.*

2 years agoMerge pull request #51 from davidcl/master
Sven Gothel [Fri, 24 Oct 2014 15:53:57 +0000 (17:53 +0200)]
Merge pull request #51 from davidcl/master

Fix the build on Fedora 17

2 years agoMerge pull request #84 from toruwest/master
Sven Gothel [Fri, 24 Oct 2014 15:47:13 +0000 (17:47 +0200)]
Merge pull request #84 from toruwest/master

Add test case of how to use instanced rendering

2 years agoMerge pull request #85 from gouessej/master
Sven Gothel [Fri, 24 Oct 2014 15:45:18 +0000 (17:45 +0200)]
Merge pull request #85 from gouessej/master

Skips ARB_create_context with ATI Radeon 3100 (see the bug 1038)

2 years agoFixes the indentation :s
Julien Gouesse [Fri, 24 Oct 2014 11:44:14 +0000 (13:44 +0200)]
Fixes the indentation :s

2 years agoSkips ARB_create_context with ATI Radeon 3100 (see the bug 1038)
Julien Gouesse [Thu, 23 Oct 2014 11:34:57 +0000 (13:34 +0200)]
Skips ARB_create_context with ATI Radeon 3100 (see the bug 1038)

http://JogAmp.org git info: FAQ, tutorial and man pages.