summaryrefslogtreecommitdiffstats
path: root/make/config
Commit message (Collapse)AuthorAgeFilesLines
* Bug 1398: MacOS: Perform [NSOpenGLContext setView:] on main-thread async w/o ↵Sven Gothel2020-02-242-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | blocking Set NSOpenGLContext's NSView via [NSOpenGLContext setView:] on the main-thread as enforced since XCode 11 using SDL macosx10.15, using Runnable SetNSViewCmd. This operation must be performed async w/o blocking to allow other tasks locking the NativeSurface on main-thread to complete. Further, since [NSOpenGLContext setView:] acquired the CGLContext lock, it can't be locked until this task has been completed. Worst case scenario for a late [NSOpenGLContext setView:] issuance might be corrupt initial frame(s) displayed. Since all concurrent locking is performed within JOGL, the unlocked CGLContext window risk is only academic. However, if native 3rd party toolkits take share control, we might have a situation. +++ SetNSViewCmd is issued @ makeCurrent() now as opposed to createContext(..) and associateDrawable(true). The latter was actually late as well, as it also happened after makeCurrent when updating the drawable association. It also missed setting a null NSView when detached! release() will also set a null NSView if called after associateDrawable(false). SetNSViewCmd will only be issued if the NSView has been changed, i.e. first makeCurrent() or changing the drawable. If issued, makeCurrent() will not lock the underlying CGLContext and hence allow SetNSViewCmd to perform - see above. +++ NSViewDescriptor class structure replaces the less convenient method 'getNSViewHandle(..)', exposing all collected drawable characteristics as fields. NSViewDescriptor also respects a ProxySurface's OPT_UPSTREAM_SURFACELESS mode, which results in not using any underlying NSView - similar to OPT_UPSTREAM_WINDOW_INVISIBLE. This change ensures that all surfaceless GL operations will not use any NSView.
* Bug 1156 - Implement DRM/GBM Support for JOGL(EGL) and NEWTSven Gothel2019-11-281-0/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding new classes DRMLib (gluegen of drm + gbm), DRMUtil and DRMMode GBMDummyUpstreamSurfaceHook to new package jogamp.nativewindow.drm, allowing full awareness of DRM + GBM within NativeWindow for JOGL + NEWT. DRMMode replaces the previous native code of collecting drmMode* attributes: active connector, used mode, encoder etc and also supports multiple active connectors. DRMUtil handles the global static drmFd (file descriptor), currently only the GNU/Linux DRM device is supported. GBMDummyUpstreamSurfaceHook provides a simple dummy GBM surface. NativeWindow provides the new nativewindow_drm.so and nativewindow-os-drm.jar, which are included in most 'all' jar packages. build property: setup.addNativeEGLGBM -> setup.addNativeDRMGBM Changes NativeWindowFactory: - TYPE_EGL_GBM -> TYPE_DRM_GBM while keeping the package ID of '.egl.gbm' for NEWT (using EGL) - Initializing DRMUtil at initialization Changes EGLDrawableFactory: - Using native GBM device for the default EGL display creation instead of EGL_DEFAULT_DISPLAY. This resolves issues as seen in Bug 1402, as well in cases w/o surfaceless support. - GL profile mapping uses surfaceless when available for GBM, otherwise uses createDummySurfaceImpl (dummy GBM surface via GBMDummyUpstreamSurfaceHook) - createDummySurfaceImpl uses a dummy GBM surface via GBMDummyUpstreamSurfaceHook - DesktopGL not available with GBM, see Bug 1401 NEWT's DRM + GBM + EGL Driver - Using DRMLib, DRMUtil and DRMMode, removed most native code but WindowDriver swapBuffer - ScreenDriver uses DRMMode, however currently only first connected CRT. - WindowDriver aligns position and size to screen, positions other than 0/0 causes DRM failure - WindowDriver reconfigure n/a NEWT TODO: - DRM Cursor support (mouse pointer) - Pointer event handling
* make void* an opaque long in EGL generated classErik De Rijcke2019-11-211-0/+1
|
* Removed import that caused GLUgl2/GLUgl2ProcAddressTable not to compileWade Walker2019-08-191-1/+0
|
* iOS: Initial working commit supporting iOS (ipad pro 11)Sven Gothel2019-06-231-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | using our OpenJFK 9 x86_64 and arm64 build. Test demo class is 'com.jogamp.opengl.demos.ios.Hello', residing in the new demo folder 'src/demos/com/jogamp/opengl/demos/ios/Hello.java'. This commit does not yet include a working NEWT specialization for iOS, but it shall followup soon. Instead this commit demonstrates JOGL operating on native UIWindow, UIView and CAEAGLLayer as provided by Nativewindow's IOSUtil. Test Video https://www.youtube.com/watch?v=Z4lUQNFTGMI +++ Notable bug: The FBO used and sharing the COLORBUFFER RENDERBUFFER memory resources with CAEAGLLayer to be displayed in the UIView seemingly cannot handle GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24 or GL_DEPTH_COMPONENT32 depth buffer - none at all (Device + Simulation). Therefor the default demo GLEventListener chosen here don't require a depth buffer ;-) This issue can hopefully be mitigated with other means than using a flat FBO sink similar to FBO multisampling.
* make/doc/jogl/spec-overview.html, make/config/jogl/gl-common.cfg: OpenGL ES ↵Xerxes Rånby2015-10-201-1/+1
| | | | 3.1 -> 3.2
* Cleanup IgnoreExtension for GL3 and GL4 exclusive extensionsSven Gothel2015-10-122-1/+17
|
* Streamline GL* profile interfaces and implementationsSven Gothel2015-10-123-20/+22
| | | | | Only add the required direct interfaces / implementations to interface / class derivations, not polluting overview in IDEs.
* Drop Vendor Extensions: INGR and PGI for all profilesSven Gothel2015-10-121-2/+2
|
* Bug 1189 - Add OpenGL ES 3.2 and new GL 4.5 Extensions support - Part5: ↵Sven Gothel2015-10-073-0/+15
| | | | GL_ARB_ES3_2_compatibility -> [GL|GLContext].isGLES32Compatible()
* Bug 1189 - Add OpenGL ES 3.2 and new GL 4.5 Extensions support - Part2: ↵Sven Gothel2015-10-0711-12/+83
| | | | | | | | | | | | | | | | | | | | | | | | | Update gluegen configs +# +# Ignored new extensions added in gl2ext.h 2015-10-06 +# see jogl/make/scripts/diff-gl2ext.sh +# FIXME: Refine for 2.4.0 +# +IgnoreExtension GL_KHR_no_error +IgnoreExtension GL_EXT_YUV_target +IgnoreExtension GL_EXT_blend_func_extended +IgnoreExtension GL_EXT_buffer_storage +IgnoreExtension GL_EXT_color_buffer_float +IgnoreExtension GL_EXT_float_blend +IgnoreExtension GL_EXT_multisampled_compatibility +IgnoreExtension GL_EXT_post_depth_coverage +IgnoreExtension GL_EXT_raster_multisample +IgnoreExtension GL_EXT_sparse_texture +IgnoreExtension GL_EXT_texture_filter_minmax +IgnoreExtension GL_EXT_texture_sRGB_R8 +IgnoreExtension GL_EXT_texture_sRGB_RG8 +IgnoreExtension GL_OVR_multiview +IgnoreExtension GL_OVR_multiview2
* Bug 1232 - NEWT Translucent Decorated Windows Not Working On Windows >= 8 ↵Sven Gothel2015-10-011-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Lack of Aero / Blur ) Adopting new undocumented user32.dll Windows >= 8 API: - SetWindowCompositionAttribute / AccentState See: - <https://github.com/riverar/sample-win10-aeroglass/blob/master/MainWindow.xaml.cs> - <http://withinrafael.com/adding-the-aero-glass-blur-to-your-windows-10-apps/> - <http://undoc.airesoft.co.uk/user32.dll/SetWindowCompositionAttribute.php> - <http://undoc.airesoft.co.uk/user32.dll/GetWindowCompositionAttribute.php> +++ Cleaning up WindowsDWM.h, use on header file (in stub_includes) for GlueGen and implementation. +++ Merge java implementation within GDIUtil.DwmSetupTranslucency(..), to be utilized by NEWT and JOGL. NEWT issues GDIUtil.DwmSetupTranslucency(..) at creation and when toggling decoration. Toggling decoration on Win >= 8 leads to lost of translucency when returning to decorated window. On Win 7, this may work .. but is also buggy. +++ Followup patch is needed for NEWT to _not_ clear the background!
* Bug 1233 - Add missing range- and pbo-bound checks on glTexture[Sub]Image[123]D*Sven Gothel2015-09-281-13/+52
| | | | | | | | | | | | | Adding missing range- and pbo-bound checks for: - glTextureImage1DEXT - glTextureImage2DEXT - glTextureImage3DEXT - glTextureSubImage1D - glTextureSubImage1DEXT - glTextureSubImage2D - glTextureSubImage2DEXT - glTextureSubImage3D - glTextureSubImage3DEXT
* Bug 1210 - Use manual impl. XRenderFindVisualFormat instead of buggy ↵Sven Gothel2015-08-312-6/+19
| | | | | | | | | | | | | | | | | | | | generated version - XRenderDirectFormat XVisual2XRenderMask(..): - Move from JOGL's X11GLXGraphicsConfiguration -> Nativewindow X11GraphicsConfiguration - Always use manual impl. of XRenderFindVisualFormat Additionally: - Add X11GraphicsConfiguration.XVisualInfo2X11Capabilities(..) allowing to properly setup the resulting Capabilities instance as used in X11GraphicsConfigurationFactory.chooseGraphicsConfigurationImpl(..) - XVisualInfo: - Add 'String toString()' - 'XVisualInfo create(XVisualInfo s)' uses source buffer size! - XGetVisualInfo: Use returned buffer-capacity/count for element-size and also bail out if count<=0
* Bug 1207 - GLDebugMessageHandler: Support GL_KHR_debug for Desktop and ES ↵Sven Gothel2015-08-303-1/+7
| | | | | | | | | | | | | | | | profile GL_KHR_debug <https://www.opengl.org/registry/specs/KHR/debug.txt> GL_KHR_debug shall be favorized before - GL_ARB_debug_output - GL_AMD_debug_output Allow GL_KHR_debug for GL2GL3 and GL2ES2 profiles, i.e. including ES profiles: GLES2, GLES3. GL_ARB_debug_output and GL_AMD_debug_output are only allowed for desktop GL2GL3 profiles.
* Bug 1203: Fix GLES3Impl.getGLES3(): Test _isES3 and throw GLException if not.Sven Gothel2015-08-291-0/+3
|
* Bug 1203: GLDrawable-Stateless operations in GLContextImpl, using ctxVersion ↵Sven Gothel2015-08-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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)'.
* Bug 1151 - Working OculusVR SDK 0.5.0.1 on GNU/Linux w/ Positional Tracker (DK2)Sven Gothel2015-07-181-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Bump OculusVR RIFT SDK to 0.5.0.1Sven Gothel2015-07-142-0/+8
| | | | State: Build clean on GNU/Linux and OSX
* Use CompatibilityType.BACKWARD_COMPATIBLE_BINARY for 2.3.1 / Add ↵Sven Gothel2015-04-041-0/+5
| | | | EGL.KHRONOS_BOOLEAN_ENUM_FORCE_SIZE manually to avoid binary incompatibility
* Bug 1116: Oculus SDK 0.4.4 support for JOGL - Part-3: New set of C-files, ↵Sven Gothel2015-03-273-5/+17
| | | | | | adapt to new SDK API - Tested on Windows and working StereoDemo01 w/ DK2!
* Bug 1116 - Add OculusVR DK2 Support - Part-2 (DK1 and DK2 on DK2 SDK w/ Eye ↵Sven Gothel2015-03-262-1/+3
| | | | Tracker if available)
* Bug 1116 - Add OculusVR DK2 Support - Part-1 (DK2 on DK1 SDK w/o Eye Tracker)Sven Gothel2015-03-211-2/+2
| | | | | | | | | | | | | | | | | - 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
* Resolve RenameJavaSymbol issues (GLUgl2 and CGL) using GLEmitter (-> ↵v2.3.0Sven Gothel2015-03-112-13/+10
| | | | | | | | | | | | | | | | 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.
* Bug 1135: GLBufferObjectTracker for GL 4.5: Separate GL 4.5 DSA and ↵Sven Gothel2015-03-117-49/+193
| | | | | | | | | 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.
* Bug 1135: Complete GLBufferObjectTracker for GL 4.5 using GlueGen's ↵Sven Gothel2015-03-1110-536/+165
| | | | | | | | | | | | 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 1135: Bump [html] doc to include GL 4.5, ES 3.1 and EGL [ 1.0 .. 1.5 ]Sven Gothel2015-03-111-8/+8
|
* Bug 1135 - (Re-)Include GL header for in generated native code, allowing ↵Sven Gothel2015-03-0926-51/+76
| | | | | | | | | | | | | | | | | | | | | '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.
* Bug 1135 - Change all GlueGen config files, supporting EGL 1.5 , ES 3.1 and ↵Sven Gothel2015-03-0664-353/+908
| | | | GL 4.5
* Bug 682 - Relocating javax.media.opengl.* -> com.jogamp.opengl.* (Part 1)Sven Gothel2015-02-0228-172/+172
| | | | | | | | | 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 1110 - Fix missing native function eglGetConfigAttributes on jogl_mobile.dllSven Gothel2015-01-271-0/+1
| | | | | | | | | 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.
* Bug 1119 - GL* Efficiency: Keep ProcAddressTable instance within GL* instancesSven Gothel2015-01-236-63/+47
|
* Bug 1096 - Expose EGL to public: com.jogamp.opengl.egl.EGL ; ↵Sven Gothel2015-01-236-23/+27
| | | | | | | | | | | | | | 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
* Bug 1068 - Allow GLContext creation and makeCurrent without default ↵Sven Gothel2014-12-072-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 1068, 1096: Unify EGL surface related code in EGLSurface; Add notion of ↵Sven Gothel2014-12-071-2/+2
| | | | | | | | | | | | | | | | | | | | | '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(..)
* GLContext.Version* VersionNumber Constants: Clarify names, avoiding ↵Sven Gothel2014-10-251-1/+1
| | | | mis-interpretation alike Version130 -> [ 1.3.0 | 1.30.0 ] ?
* Bug 1031: Remove Deprecated Classes and Methods (JOGL)Sven Gothel2014-07-107-53/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed Deprecated Class: - com/jogamp/opengl/util/TGAWriter.java - Use TextureIO w/ .tga suffix - com/jogamp/opengl/util/awt/Screenshot.java - Use: - com.jogamp.opengl.util.GLReadBufferUtil, or - com.jogamp.opengl.util.awt.AWTGLReadBufferUtil The latter for reading into AWT BufferedImage See: TestBug461FBOSupersamplingSwingAWT, TestBug605FlippedImageAWT - javax/media/opengl/GLPbuffer.java - Use: caps.setPBuffer(true); final GLAutoDrawable pbuffer = GLDrawableFactory.getFactory( caps.getGLProfile() ).createOffscreenAutoDrawable(null, caps, null, 512, 512); - See: TestPBufferDeadlockAWT, .. Removed Deprecated Methods: - Constructor of AWT-GLCanvas, SWT-GLCanvas, AWT-GLJPanel with argument 'final GLContext shareWith' See GLSharedContextSetter, i.e. glCanvas.setSharedContext(..) ! - GLDrawableFactory.createOffscreenAutoDrawable(..) with argument 'final GLContext shareWith' See GLSharedContextSetter, i.e. offscreenAutoDrawable.setSharedContext(..) ! - GLDrawableFactory.createGLPbuffer(..), see above! - com.jogamp.opengl.util.av.AudioSink 'enqueueData(AudioDataFrame audioDataFrame)', use 'enqueueData(int, ByteBuffer, int)' - GLSharedContextSetter.areAllGLEventListenerInitialized(), migrated to GLAutoDrawable ! - GLBase's - glGetBoundBuffer(int), use getBoundBuffer(int) - glGetBufferSize(int), use getBufferStorage(int).getSize() - glIsVBOArrayBound(), use isVBOArrayBound() - glIsVBOElementArrayBound(), use isVBOElementArrayBound() - NEWT MouseEvent.BUTTON_NUMBER, use BUTTON_COUNT
* GLU: Make ProjectFloat/ProjectDouble final and deprecate GLU.destroy() method.Sven Gothel2014-06-273-12/+9
|
* Bug 1021: OVR GlueGen Mapping: Handle non-existent native oculusvr lib ↵Sven Gothel2014-06-252-20/+35
| | | | | | | gracefully - query isAvailable() in ovr_Initialize(), ovrHmd_Create(..) and ovrHmd_CreateDebug(..) and return appropriate values.
* Bug 1021: OVR GlueGen Mapping: Compile all generated C files, add missing C ↵Sven Gothel2014-06-252-0/+7
| | | | ovrHmdStruct in generated files, reduce warnings.
* Bug 1021: Enhance OVR GlueGen Mapping / Adapt to GlueGen commit ↵Sven Gothel2014-06-253-7/+24
| | | | 9ee44e1a289ecbac024662dd5a2ffc42e8add023 (Bug 1025)
* Bug 1021: Add OculusSDK binding / Basic OVR supportSven Gothel2014-06-194-0/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bring-up test only initializes the ovrHmdHandle data structure by OVR native code. See com.jogamp.oculusvr.OVRVersion Current evaluation build compiles all OVR-SDK source files itself w/o using provided libovr.a. We also skip the GL dependent renderer of the SDK, i.e. we prefer to utilize our JOGL 'barrel distortion' renderer. This eases the 'chicken-egg' problem of OVR SDK dependencies, i.e. libGL, libGLESv2 .. etc Since the OVR source code is C++, we may still have to figure out how to / and whether we shall link libstdc++ statically to remove platform dependencies. Right now we link libstdc++ statically if using GCC, see make/build-oculusvr.xml (hackish .. TODO: better way to include all symbols). Same consideration applies to GNU/Linux and libudev.so dependency, since there are: - libudev.so.0 and (Older distri's) - libudev.so.1 (Debian8, ..) ... Produced JAR artifacts are - jar/atomic/oculusvr.jar - jar/atomic/oculusvr-natives-<os.and.arch>.jar i.e. only in 'atomic' variants to not bloat the default 'all' JAR files. .... make/build-oculusvr.xml Notes: - Currently native build only enabled on GNU/Linux (isLinux) - Force disable native build via property 'c.build.oculusvr.skip'
* Adapt to GlueGen commit 2f6586292cd298bbc19d8acda0f7cf303c82078b (compount ↵Sven Gothel2014-06-187-7/+8
| | | | | | | call-by-value extension) - GLU*: initializeImpl() is no more required, since it's not forced .. uncomment in manual static initializer - GLX: 'ForceStaticInitCode GLX', i.e. forcing native code, as used in our manual implementation.
* Fix regression due to GlueGen commit ↵Sven Gothel2014-06-176-2/+18
| | | | | | | | | | | | | | c3054a01990e55ab35756ea23ab7d7c05f24dd37, completes JOGL commit 68ca3ae8fcce28c62034299bc6e6f7eaab50bd1f Add handling of 'initializeImpl()' of generated GLU* classes: - GLU : no 'initializeImpl()' <- no libs - GLUgl2es1: no 'initializeImpl()' <- no libs - GLUgl: call 'initializeImpl()' in manual static init impl. Further more, we shall not initialize the GLU* classes in GLU static init method, querying GLU* class availability. Tested via OlympicES1.
* Adapt to GlueGen commit c3054a01990e55ab35756ea23ab7d7c05f24dd37 (compount ↵Sven Gothel2014-06-171-69/+6
| | | | call-by-value extension), utilizing native JVMUtil_NewDirectByteBufferCopy(..)
* Bug 1010 - Fix ES3.glPixelStorei and revalidate GLPixelStorageModesSven Gothel2014-05-261-4/+0
| | | | | | | | | | | | Remove GLES3Impl.glPixelStorei pname validation which was true for ES2 impl, but is no more valid for ES3, which accepts more values than GL_PACK_ALIGNMENT & GL_UNPACK_ALIGNMENT. Revalidate GLPixelStorageModes: - Properly support ES3 PixelStorageModes - Revalidate PixelStorageModes for all GL profiles - Properly reset values at save - Separate PACK and UNPACK save/reset/restore implementation
* Bug 742 HiDPI: [Core API Change] Distinguish window-units and pixel-units; ↵Sven Gothel2014-05-211-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add HiDPI for AWT GLCanvas w/ OSX CALayer Core API Change: To support HiDPI thoroughly in JOGL (NativeWindow, JOGL, NEWT) we need to separate window- and pixel units. NativeWindow and NativeSurface now have distinguished access methods for window units and pixel units. NativeWindow: Using window units - getWindowWidth() * NEW Method * - getWindowHeight() * NEW Method * - getX(), getY(), ... NativeSurface: Using pixel units - getWidth() -> getSurfaceWidth() * RENAMED * - getHeight() -> getSurfaceHeight() * RENAMED * GLDrawable: Using pixel units - getWidth() -> getSurfaceWidth() * RENAMED, aligned w/ NativeSurface * - getHeight() -> getSurfaceHeight() * RENAMED, aligned w/ NativeSurface * Above changes also removes API collision w/ other windowing TK, e.g. AWT's getWidth()/getHeight() in GLCanvas and the same method names in GLDrawable before this change. +++ Now preliminary 'working': - AWT GLCanvas - AWT GLJPanel Tested manually on OSX w/ and w/o HiDPI Retina: java com.jogamp.opengl.test.junit.jogl.demos.es2.awt.TestGearsES2AWT -manual -noanim -time 1000000 java com.jogamp.opengl.test.junit.jogl.demos.es2.awt.TestGearsES2GLJPanelAWT -manual -noanim -time 1000000 +++ TODO: - NEWT - Change Window.setSize(..) to use pixel units ? - OSX HiDPI support - Testing .. - API refinement
* Bug 961: Fix commit fdd60adb1d421f2018b47ee17e9079c94b54910f (memmove ↵Sven Gothel2014-03-111-4/+10
| | | | | | byte-count) memmove's byte-count was just giving the element-count, missing the element-size multiplier to actually pass byte-count
* Bug 961: Stabilize glXGetFBConfigAttrib(..) and glXChooseFBConfig(..) Usage ↵Sven Gothel2014-03-104-2/+84
| | | | | | | | | | | | | | | | Against OpenGL Bugs ; Fix glXGetFBConfigs - glXChooseFBConfig(..) - Remove NULL FBConfig pointer from result in native code, which has been observed in Mesa 8.0.5-4 libgl1-mesa-swx11 (Debian-7). - glXGetFBConfigs - Add manual implementation similar to glXChooseFBConfig - glXGetFBConfigAttrib(..) - glXGetFBConfig(..) - Returns boolean reflecting success, don't throw exception - caller handles error - Caller ignore failure if not essential (i.e. already chosen config)
* Bug 974 - Add missing [GL4] glMultiDrawArraysIndirect(int mode, int type, ↵Sven Gothel2014-02-133-0/+6
| | | | long indirect_offset, int drawcount, int stride)