aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* FFMPEGMediaPlayer: Add support for libav-11 and ffmpeg 2.[4-x] (Latest ↵Sven Gothel2015-02-053-26/+131
| | | | release, used in Debian 8, etc)
* Fix FFMPEGMediaPlayer: static init block issue, libavresample debian8 packagingSven Gothel2015-02-056-66/+74
| | | | | | | | | | | | - 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.
* Add missing privileged section for NativeLibrary lookup: GLContextImpl and ↵Sven Gothel2015-02-053-96/+102
| | | | | | | | | | 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 1068 - Fix issue w/ unifying Surfaceless probing (commit ↵Sven Gothel2015-02-034-11/+35
| | | | | | | | | | | | | | | | | | | | | | 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. +++
* Bug 682 - Relocating javax.media.opengl.* -> com.jogamp.opengl.* (Part 2)Sven Gothel2015-02-0249-0/+0
| | | | | 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-02239-1223/+1223
| | | | | | | | | 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/**
* Add FIXME notes: AWTPrintLifecycle, WindowsWGLGraphicsConfigurationSven Gothel2015-02-021-0/+1
|
* Bug 1126: Adobt GlueGen commit 7db9df61142694965b50f2e0553d4c9e5668439bSven Gothel2015-02-021-1/+1
|
* Fix UbuntuFontLoader: Regression of commit ↵Sven Gothel2015-01-271-14/+22
| | | | | | | bd24599b21f9787ac989e65b44dc1ba762162f22 Commit bd24599b21f9787ac989e65b44dc1ba762162f22 removed font loading w/o TempJarCache, e.g. as used on Android.
* Bug 1120 - Refine HiDPI Support ( Part-2 ) (API CHANGE)Sven Gothel2015-01-272-76/+159
| | | | | | | | | | | | | | | | | | | | | | - 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.
* GLContextImpl.makeCurrentImpl(): Remove redundant test whether context is ↵Sven Gothel2015-01-234-39/+52
| | | | | | | | | | 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
* Bug 1068 - Unify Surfaceless probing; Fix Surfaceless for OSX and Windows ↵Sven Gothel2015-01-239-209/+306
| | | | | | | | | | | | | | | | | | | (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
* Misc Fix: GLContext*; Refine DEBUG output in GLDrawableFactory's ↵Sven Gothel2015-01-237-27/+31
| | | | | | | | | | | | | | | | | | | 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
* Bug 896: Refine criteria to allow OpenGL API usage for EGLSven Gothel2015-01-233-26/+50
| | | | | | | | | | | | | | | 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();
* Simplify GLDrawable[Impl|Factory].getGLDynamicLookupHelper(..)Sven Gothel2015-01-2313-58/+26
| | | | | | | | | - 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()
* Bug 1038: Refine handling of GLRendererQuirks.NoARBCreateContextSven Gothel2015-01-234-31/+58
| | | | | | - GLRendererQuirks.NoARBCreateContext is set static per device - Property GLProfile.disableOpenGLARBContext sets static GLRendererQuirks.NoARBCreateContext - Centralize handling in GLContextImpl.createContextARB(..)
* Resolve merge conflict GLRendererQuirksSven Gothel2015-01-233-4/+39
|\
| * Fixes the indentation :sJulien Gouesse2014-10-241-2/+2
| |
| * Skips ARB_create_context with ATI Radeon 3100 (see the bug 1038)Julien Gouesse2014-10-233-3/+38
| |
* | Bug 1119 - GL* Efficiency: Keep ProcAddressTable instance within GL* instancesSven Gothel2015-01-231-44/+57
| |
* | Bug 1096 - Expose EGL to public: com.jogamp.opengl.egl.EGL ; ↵Sven Gothel2015-01-2315-77/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 - Use GenericUpstreamSurfacelessHook for all ↵Sven Gothel2015-01-235-97/+12
| | | | | | | | createSurfacelessImpl(..) implementations
* | Misc Fixes: Bug 1102 GLJPanel.setSurfaceScale(..); SurfaceSize.hashCode()Sven Gothel2014-12-071-7/+7
| | | | | | | | | | | | | | | | | | - 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.
* | Bug 1068 - Allow GLContext creation and makeCurrent without default ↵Sven Gothel2014-12-0727-657/+1201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0713-263/+425
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | '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(..)
* | Bug 1107 - Refine PixelFormat, GLPixelBuffer and ↵Sven Gothel2014-12-069-232/+564
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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(..).
* | Bug 1106: JPEGDecoder adopt to GlueGen Bitstream change commit ↵Sven Gothel2014-12-061-2/+2
| | | | | | | | 9e13e8c78ed69bb7afcd49abe8bf69340dc06223
* | Minor Cleanup (FBObject, GLBase)Sven Gothel2014-12-062-4/+13
| | | | | | | | | | | | FBObject: Remove redudant case GLBase: Add API doc reference to GLContext implementation
* | Use ExceptionUtils.dumpStack(..) instead of Thread.dumpStack()Sven Gothel2014-10-2620-60/+80
| |
* | GLContext.Version* VersionNumber Constants: Clarify names, avoiding ↵Sven Gothel2014-10-254-34/+34
| | | | | | | | mis-interpretation alike Version130 -> [ 1.3.0 | 1.30.0 ] ?
* | FloatUtil.makeFrustum(..): Add throws GLException API doc / Add GLException ↵Sven Gothel2014-10-254-11/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.*
* | Fix GLContext.Version* regression: Use Version1_1 and Version1_2 for 1.1 and ↵Sven Gothel2014-10-124-17/+29
|/ | | | | | | | | | | | | | | 1.2 (Version110 and Version120 are for 1.10 and 1.20 GLSL) Following commit introduced the wrong version usage, where a comparison w/ 1.1 and 1.2 was intended. Commit 6363fccee219ce238b0b2ded39c116e2bc8613d5 GLBuffers.sizeof(..): Add support for ES3, reading supported glPixelStorei states Commit 73a4d809f92126228b64a3bded75686db806be64 Don't utilize glPixelStorei's PACK/UNPACK IMAGE_HEIGHT and SKIP_IMAGES for Desktop GL < 1.2, avoiding GL-Error Commit f358c49418e95c622d50eb29f53c60dc4dbdee5b Bug 1047 - jogamp.opengl.glu.mipmap.Mipmap now uses already parsed GL version number and GL profile selection
* Graph/Math: Fix minor apidoc issuesSven Gothel2014-10-096-17/+42
|
* Graph: Fix minor apidoc issuesSven Gothel2014-10-092-3/+7
|
* FontFactory: Fix SecurityException as regression of commit ↵Sven Gothel2014-10-091-1/+6
| | | | | | bd24599b21f9787ac989e65b44dc1ba762162f22 - add missing PrivilegedAction around tempFile[0].delete()
* Graph Font: Fix API doc (parameter) ; GPUUISceneGLListener0A forward ↵Sven Gothel2014-10-092-4/+12
| | | | FontFactory.get(..) exception, we cannot recover in this demo
* ShaderCode: Fix link to create(..) methodSven Gothel2014-10-081-3/+3
|
* GLException.dumpThrowable(..) -> GlueGen's ExceptionUtils.dumpThrowable(..)Sven Gothel2014-10-083-16/+10
|
* Bug 1088: Add GLRendererQuirks.NeedSharedObjectSync; Tests: Synchronize GL ↵Sven Gothel2014-10-083-2/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | objects if GLRendererQuirks.NeedSharedObjectSync is set. GLSharedContextSetter#synchronization GL Object Synchronization Usually synchronization of shared GL objects should not be required, if the shared GL objects are created and immutable before concurrent usage. However, using drivers exposing GLRendererQuirks.NeedSharedObjectSync always require the user to synchronize access of shared GL objects. Synchronization can be avoided if accessing the shared GL objects exclusively via a queue or com.jogamp.common.util.Ringbuffer, see GLMediaPlayerImpl as an example. +++ GLRendererQuirks.NeedSharedObjectSync is set for all OSX versions +++ Handle GLRendererQuirks.NeedSharedObjectSync in user code! +++ All shared context tests passed on OSX 10.9.5, and GNU/Linux w/ Nvidia + Mesa/AMD driver.
* GLRendererQuirks: Align wording in API docSven Gothel2014-10-081-13/+19
|
* GLContextImpl: Unify common TRACE_SWITCH and DEBUG_TRACE_SWITCH base ↵Sven Gothel2014-10-082-33/+26
| | | | info-string creation; MacOSXCGLContext: Fix intendation
* AnimatorBase thread-name: Add instance sequence numberSven Gothel2014-10-071-2/+5
|
* WindowsWGLGraphicsConfiguration[Factory]: Refine indentation to increase ↵Sven Gothel2014-10-032-45/+78
| | | | readability (140 chars width)
* Merge remote-tracking branch 'gouessej/master'Sven Gothel2014-10-023-8/+49
|\
| * Uses System.err instead of System.out in order to drive the debug logs more ↵unknown2014-10-023-8/+49
| | | | | | | | consistent, adds a method to convert an attribute list into a capabilities object with no check in order to display some information about skipped capabilities objects and fixes a NullPointerException when skipping a capabilities object
* | Bug 1085: Fix GLJPanel regression while printing w/ invisible GLJPanel: Zero ↵Sven Gothel2014-10-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | size panel size This is a regression due to commit 84f367a73c5b16dcebfd877e82e1c2cb90ae74ce: GLJPanel Cleanup: Remove initial FBO reshape; ** Propagate reshape only if differs from panel-size; ** <- this one Use pre-fetched panel-size. Above commit only issued 'sendReshape' if the reshape-size differs from the actual panel-size. Note: The reshape-size is propagated to panel-size either in [1] initializeBackendImpl(..) or [2] handleReshape(..) @ paintComponent. While printing w/ an invisible GLJPanel the reshape-size has not yet propagated to the panel-size (see above) and two consecutive reshape calls will cause the last one to be dropped. With this patch we have: GLJPanel.addNotify() GLJPanel.reshape.0 null resize [paint] [ this 0x0, pixelScale 1x1, panel 560x420] -> 0x0 * 1x1 -> 0x0, reshapeSize 0x0 GLJPanel.reshape.0 null resize [paint] [ this 560x420, pixelScale 1x1, panel 560x420] -> 560x420 * 1x1 -> 560x420, reshapeSize 560x420 GLJPanel.setupPrint: scale 1.000000 / 1.000000, samples 0, tileSz -1 x -1 GLJPanel.createAndInitializeBackend.1: [printing] 560x420 @ scale 1x1 -> 560x420 @ scale 1x1 A
* | Bug 1085: Increase and fix DEBUG verbosity in GLJPanel to catch reshape ↵Sven Gothel2014-10-021-9/+13
|/ | | | regression during print