summaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com
Commit message (Collapse)AuthorAgeFilesLines
* Bug 1203: Properly format DEBUG output related to mapGLVersions: Use ↵Sven Gothel2015-08-271-9/+14
| | | | '-MapGLVersions' suffix.
* Bug 1202 - Add support of Adaptive Vsync via [GLX|WGL]_EXT_swap_control_tearSven Gothel2015-08-272-60/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [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 +++
* Improves a bit the documentation of ImageTypeJulien Gouesse2015-08-191-5/+5
|
* Improves a bit the documentation of ImageType and adds .ico and .cur into itJulien Gouesse2015-08-191-23/+68
|
* PNGPixelRect: Avoid redundant wrapping of InputStream into BufferedInputStreamSven Gothel2015-08-191-1/+2
|
* Bug 1042: ImageIOUtil -> ImageType + ImageType.Util ; Fix implementation and ↵Sven Gothel2015-08-198-1505/+1736
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | test. - ImageIOUtil -> ImageType + ImageType.Util - ImageType.Util.getFileSuffix(..): - Fix byte type conversion, i.e. 'b == (byte)0x89', cast is required to avoid byte -> int conversion. Note: signed byte -128 - +128 - Parse in O(1), i.e. lexicographical parsing - FIXME: We seem to have at least three type collisions, validate! - ImageType: - Complete T_* w/ API doc -> FIXME/TODO missing type references! - ImageType instancing via InputStream or manual type definition. - TextureData - Contains optional source ImageType - TextureProvider: - Deprecate newTextureData(..) variants other than InputStream simplifying TextureIO. - TextureProvider.SupportsImageTypes: - Added interface, allowing mapping ImageType -> provider - Tested standalone ImageType (TestImageTypeNEWT) and via TextureIO (TestTextureIONEWT) utilizing list of all test data (ImageTstFiles), i.e. PNG, JPG, TGA and DDS.
* Bug 1042: ImageIOUtil: Use unique public static final const String identifiersSven Gothel2015-08-182-154/+1065
|
* Bug 1042: ImageIOUtil: Left-Align branches for readabilitySven Gothel2015-08-181-100/+100
|
* Bug 1193: ShaderCode: Add SUFFIX_COMPUTE_SOURCE/SUFFIX_COMPUTE_BINARY; Add ↵Sven Gothel2015-08-181-3/+22
| | | | @since 2.3.2 tag
* Updates the documentation of the class ShaderCode concerning the compute shadersJulien Gouesse2015-08-131-11/+13
|
* Adds the compute shaders into the list of supported shaders for ShaderCodeJulien Gouesse2015-08-131-0/+9
|
* Deprecates SGIImage.isSGIImage() and DDSImage.isDDSImage(), see the bug ↵Julien Gouesse2015-08-092-7/+14
| | | | report 1042
* Calls ImageIOUtil in TextureIO to detect the image format of a stream, see ↵Julien Gouesse2015-08-091-4/+7
| | | | the bug report 1042
* Documents ImageIOUtil, see the bug report 1042Julien Gouesse2015-08-091-0/+17
|
* Detection of the image format, first version (work in progress), see the bug ↵Julien Gouesse2015-08-091-0/+428
| | | | report 1042
* Bug 1062: Utilize 'GLProfile.disableOpenGLDesktop' for EGLDrawableFactory ↵Sven Gothel2015-08-051-16/+22
| | | | | | | | | | | desktop mapping as well. Commit 35622a7cef4a28ce7e32bf008ef331d9a0d9e3e2 introduced GLProfile.disableOpenGLDesktop, as enabled by system property 'jogl.disable.opengldesktop'. Desktop OpenGL shall also be disabled within EGLDrawableFactory. Provide verbose DEBUG info for all disabled desktop OpenGL cases.
* Bug 1184 - JOGL AWT Canvas Components don't update AWTGraphicsConfiguration ↵Sven Gothel2015-07-271-133/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | when reconfigured. JOGL AWT Components, e.g. GLCanvas or NewtCanvasAWT, may be reconfigured by moving them to another display/monitor or by other means. Since AWT has no means to notify the user code via an event, JOGL components usually determine the reconfiguration via the override 'GraphicsConfiguration getGraphicsConfiguration()'. GLCanvas is sensible to this reconfiguration, however its AWTGraphicsConfiguration (owned via JAWTWindow) is not changed. Implement reconfiguration detection for all JOGL AWT Components and update the AWTGraphicsConfiguration if required. For now, constraint reconfiguration on GraphicsDevice change as currently implemented in GLCanvas. The updated AWTGraphicsConfiguration allows using the updated GraphicsDevice as it might be required for further information, e.g. pixel-scale on OSX.
* Bug 1146, Bug 1158: Add unit test for GLContext creation after showing ↵Sven Gothel2015-07-241-4/+13
| | | | | | | | tool-tip within JDialog Test passes on GNU/Linux X11 and Windows - both using NVidia driver. Unit test is based on Robin Provost's code as attached in Bug 1158.
* StereoDevice (Generic/OVR): Add knowledge about LocationSensorParameter and ↵Sven Gothel2015-07-202-0/+68
| | | | allow reset origin of location-sensor
* Clarify code in stereo/ovr: Comments, states, names, formatting.Sven Gothel2015-07-202-3/+3
|
* Refine Frustum definition: Adding Frustum.FovDesc; Clarify makeFrustum ↵Sven Gothel2015-07-205-35/+102
| | | | argument constraints -> Exceptions
* ShaderCode: Add 'create' variations w/ custom shader file suffixes as well ↵Sven Gothel2015-07-191-19/+303
| | | | as w/ Uri usage
* Fix javadoc typo: </count> -> </code>Sven Gothel2015-07-181-4/+4
|
* Bug 1151 - Working OculusVR SDK 0.5.0.1 on GNU/Linux w/ Positional Tracker (DK2)Sven Gothel2015-07-188-46/+153
| | | | | | | | | | | | | | | | | | | | | | | | | Note: The ovrd server must run, otherwise no device is being detected. General Stereo API Changes: - EyePose -> ViewerPose - We only use the viewer pose and derive the pupile position via EyeParameter. - Hence we reduce complexity. - A single ViewerPose will be maintained by StereoDeviceRenderer - position is in meter, allowing StereoGLEventListener to scale device independent. - StereoDevice receives knowledge of certain sensors, to be queried and used for start-sensors. OVR: - Simply apply the above general changes - Build: Remove [more] unused API entries for SDK rendering
* Bug 1153 - GLEmitter: Only dump extra comment if w/o enum-name or w/o extensionSven Gothel2015-04-011-7/+8
| | | | Since GlueGen handles enum typedef's properly, this relation to the enum-name is already printed.
* Bug 1116: Add ShutdownHook for all factories and devices to ↵Sven Gothel2015-03-273-8/+105
| | | | StereoDeviceFactory using NativeWindowFactory
* Bug 1116: Oculus SDK 0.4.4: Add extra DK1 detection; Add call to ↵Sven Gothel2015-03-272-0/+10
| | | | | | | | | | | | | | 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().
* GLContext glVersionString: Group all 'compat' flags to save space, add ES32 ↵Sven Gothel2015-03-261-3/+10
| | | | compatibility
* Bug 1116 - Add OculusVR DK2 Support - Part-1 (DK2 on DK1 SDK w/o Eye Tracker)Sven Gothel2015-03-218-19/+466
| | | | | | | | | | | | | | | | | - 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
* Fix API Doc: GLBufferObjectTracker / GLBufferStorageSven Gothel2015-03-121-6/+13
|
* Bug 1135: Complete GLBufferObjectTracker for GL 4.5 using GlueGen's ↵Sven Gothel2015-03-113-14/+16
| | | | | | | | | | | | 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).
* Bug 1144: Adapt to GlueGen commit 405512e1c8a2e24834b0d057f0b020b4a0f4c25bSven Gothel2015-03-115-21/+42
|
* Bug 1134 - Use ASTLocationTag in LoggingSven Gothel2015-03-082-6/+6
| | | | Adapt to GlueGen commit da909f84dc8421052c92491baa7dd90e1c78dc8f
* Bug 1135 - Cleanup: Class ownership change of static GL enumeratesSven Gothel2015-03-0611-44/+43
| | | | GLBufferStateTracker now also supports GL4.GL_QUERY_BUFFER
* Bug 1135 - GL/GLContext: Add isGLES31Compatible()Sven Gothel2015-03-063-5/+56
|
* Bug 1135 - Cleanup: Remove GL_NV_vertex_array_range extension support in ↵Sven Gothel2015-03-061-9/+1
| | | | GLContext
* Bug 1135 - Change JOGL's GlueGen Plugin to support EGL 1.5 , ES 3.1 and GL 4.5Sven Gothel2015-03-064-198/+341
| | | | | | | | | | | | | | | | | | | - 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
* Fix typo: PixelFormat.Composition.[componenCount() -> componentCount()]Sven Gothel2015-02-162-3/+3
| | | | .. thx to Julien Gouesse's review.
* Bug 1129 - NEWT MonitorDevice's physical size on Windows must be read via EDIDSven Gothel2015-02-161-1/+0
| | | | | | | | | | | | | | | | | | | 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.
* Add missing privileged section for NativeLibrary lookup: GLContextImpl and ↵Sven Gothel2015-02-051-4/+2
| | | | | | | | | | 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.
* Bug 682 - Relocating javax.media.opengl.* -> com.jogamp.opengl.* (Part 2)Sven Gothel2015-02-0249-0/+15774
| | | | | Relocation javax.media.nativewindow.* -> com.jogamp.nativewindow.* Relocation javax.media.opengl.* -> com.jogamp.opengl.*
* Bug 682 - Relocating javax.media.opengl.* -> com.jogamp.opengl.* (Part 1)Sven Gothel2015-02-0273-334/+334
| | | | | | | | | 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/**
* Bug 1126: Adobt GlueGen commit 7db9df61142694965b50f2e0553d4c9e5668439bSven Gothel2015-02-021-1/+1
|
* Resolve merge conflict GLRendererQuirksSven Gothel2015-01-231-3/+27
|\
| * Skips ARB_create_context with ATI Radeon 3100 (see the bug 1038)Julien Gouesse2014-10-231-2/+26
| |
* | Bug 1096 - Expose EGL to public: com.jogamp.opengl.egl.EGL ; ↵Sven Gothel2015-01-231-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | FBObject: indentation / DEBUG output cleanupSven Gothel2015-01-231-7/+7
| |
* | Bug 1068 - Allow GLContext creation and makeCurrent without default ↵Sven Gothel2014-12-071-2/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Bug 1107 - Refine PixelFormat, GLPixelBuffer and ↵Sven Gothel2014-12-067-224/+518
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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(..).
* | Minor Cleanup (FBObject, GLBase)Sven Gothel2014-12-061-4/+1
| | | | | | | | | | | | FBObject: Remove redudant case GLBase: Add API doc reference to GLContext implementation