summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* ExtensionAvailabilityCache: Remove 'XXX_NV_vertex_array_range' hackSven Gothel2012-02-221-11/+1
|
* Fix VBORegion2PES2: Don't exceed MAQX_TEXTURE_SIZESven Gothel2012-02-221-0/+8
|
* TextureIO (TGA/NetPbm): Allow GL_BGR[A] and use GL_BGRA if available ; Fix ↵Sven Gothel2012-02-226-61/+284
| | | | | | | | | | | | | NetPbmTextureWriter ; Added unit tests - Allow GL_BGR[A] usage (TGA / NetPbm) - Use GL_BGRA if available (TGA), utilize GLContext.isTextureFormatBGRA8888Available() - Fix NetPbmTextureWriter - Maintain 'auto' magic mode for 'spi' role in TextureIO (was overwritten) - Use FileChannel for nio buffer streaming, instead of array copy
* Test (graph) fixes for ESSven Gothel2012-02-227-52/+108
| | | | | | - MSAATool: Catch gl-errors on glIsEnabled(..) queries - Call MSAATool.dump(..) in base class GPURendererListenerBase01
* Fix GLReadBufferUtil for ES platforms: RGB read format may not be supported. ↵Sven Gothel2012-02-221-13/+44
| | | | Use GL_IMPLEMENTATION_COLOR_READ_FORMAT/TYPE query
* FBObject: Meaningfull error message if TexImage2D fails.Sven Gothel2012-02-221-10/+17
|
* FontSet (graph): get*(..) throws IOException - Proper passing and handling ↵Sven Gothel2012-02-228-58/+109
| | | | of IOException
* EGLDrawable: use the original requested Capabilities, ignore previously ↵Sven Gothel2012-02-221-3/+2
| | | | | | | | | chosen ones (x11,win32,..) - they are not fit The previous chosen caps might come from GLX, WGL .. however, these caps doesn't reflect EGL's capabilities - they may reflect less features. This fixes missing MSAA on linux/armv7 w/ GLX enabled.
* Minor GL/GLContext additions / cleanups (GL_BGRA, isNPOTTextureAvailable())Sven Gothel2012-02-225-11/+22
| | | | | | | | - Subsume GL_EXT_texture_format_BGRA8888 -> GL, Added GLContext.isTextureFormatBGRA8888Available() - Movied generic isNPOTTextureAvailable() from GL -> GLContext, used by GL (desktop), added simplified impl. in GLES1/GLES2 (false/true)
* Remove unused class jogamp/opengl/gl2/UtilSven Gothel2012-02-221-244/+0
|
* API Change [GLProfile/GLContext]: Add notion of hardware acceleration in ↵Sven Gothel2012-02-209-114/+270
| | | | | | | | | | | | | | | | | | | | | | | | | | GLProfile.get<Profile>() methods. We need to distinguish between software and hardware accelerated OpenGL profiles to allow choosing the proper profiles [default, GL2ES1, GL2ES2, ..] on platforms where both, software and hardware implementations exist (GL, GLES2, ..). Where no preference is being requested, hardware acceleration is favored: GLProfile.getDefault() GLProfile.getGL2ES1() GLProfile.getGL2ES2() Some method signatures needed to change GLProfile: getMaxProgrammable(AbstractGraphicsDevice device) -> getMaxProgrammable(AbstractGraphicsDevice device, boolean favorHardwareRasterizer) GLProfile adds: isHardwareRasterizer() Determination whether a hardware acceleration is being used or not is extended in GLContextImpl by querying the current context's GL_RENDERER string. If the latter contains 'software' (case insensitive) it is not hardware accelerated. At least this works w/ newer Mesa3D impl, where GLX_SLOW_CONFIG is not set!
* Fix commit fb7165e690546359dee92dd60b04be69f141c87e; Clarify ↵Sven Gothel2012-02-208-57/+38
| | | | ShaderState.attachShaderProgram(..)
* Hide dump of screen origin/size behind DEBUG flag.Sven Gothel2012-02-191-1/+3
|
* Cleanup ShaderCode/Program/StateSven Gothel2012-02-197-40/+66
| | | | | | - Add multiple sources for create ShaderCode - Add Shaderstate attachShaderProgram w/ enable flag - Clarify doc
* GLGLuegen: Enhance debug/analysis code and API commentsSven Gothel2012-02-154-41/+94
| | | | | | | | | | | | | - Use Gluegen.debug() setting - BuildStaticGLInfo.getExtension(name) returns a set of all extension where name occurs - GLConfiguration.shouldIgnoreExtension() reflects all extensions, inclusive the renames one and gives a warning in case the symbol belongs to multiple extension - in debug mode! - API comment: List all extensions, incl. the one from the renames, this allows having a proper list to which extensions the define/function belongs to.
* Fix TestTransformFeedbackVaryingsBug407NEWT (2): Use getMaxProgrammable() ↵Sven Gothel2012-02-141-1/+1
| | | | for profile, allowing test on OSX (only has GL3 core profile at max).
* Fix TestTransformFeedbackVaryingsBug407NEWT regression: Get default profile ↵Sven Gothel2012-02-141-2/+1
| | | | (not GL4) and check. Ooops.
* Simplify TestTransformFeedbackVaryingsBug407NEWT: Use 'in thread' ctx flow ↵Sven Gothel2012-02-141-81/+50
| | | | and debug context.
* Fix ExtensionAvailabilityCache ; Enhance caching.Sven Gothel2012-02-1412-123/+129
| | | | | | | | | | | | | | | | | | | ExtensionAvailabilityCache regression / enhancement: - Set context version (w/o string) before caching. This is required since we query the ctx version. Regression from 4011e70eed8c88aee0fcd051a50ab3f15bb94f68 - Remove GLContextImpl state. Only use the passed value at initialization. - Defined initialization, due to the 'new' cache/instantiation logic Remove redundant GLContext profile bits: - CTX_OPTION_ANY: implicit if !CTX_OPTION_FORWARD - CTX_IMPL_ACCEL_HARD: implicit if !CTX_IMPL_ACCEL_SOFT Cache key (ProcAddressTable, Extensions): - Mask out GLContext.CTX_OPTION_DEBUG | GLContext.CTX_IMPL_ES2_COMPAT, since they don't influence the cached values.
* Enhance ExtensionAvailabilityCache ; Expose extension count in GLContext ↵Sven Gothel2012-02-139-117/+199
| | | | | | | | | | | | | | (and clean up) - GLContext - Expose isFunctionAvailable(), isExtensionAvailable(), getPlatformExtensionCount(), getGLExtensionCount() - sort methods a bit ExtensionAvailabilityCache: - Favor StringBuilder instead of StringBuffer (faster) - Resuse set's - Hold dedicated counts of extensions, platform and GL
* Test: Remove dedicated mobile profile test, will be included in ↵Sven Gothel2012-02-131-93/+0
| | | | TestGLProfile01NEWT
* OSX CALayer fix for Java7 (force CALayer to 0/0, always remove all animations)Sven Gothel2012-02-134-15/+57
|
* OSX/Java7 JAWT/JAWTUtil: Support OSX/Java7 CALayer only JAWT mode; Cleanup ↵Sven Gothel2012-02-131-12/+65
| | | | | | | | | JAWT/JAWTUtil - Support OSX/Java7 CALayer only JAWT mode - Cleanup JAWT/JAWTUtil while moving elaborated logic and data to JAWTUtil, leave generated JAWT simple.
* MacOSXCGLDrawableFactory: Fix typo 'Applet' -> 'Apple' for APPLE_float_pixelsSven Gothel2012-02-132-8/+15
| | | | - be verbose about features in DEBUG mode (RECT, NPOT, APPLE_float_pixels)
* Java2D OGLPipeline: Disabled for Max OSXSven Gothel2012-02-131-2/+12
|
* Fix JOGL GLContextImpl ProcAddressTable and Extension CachingSven Gothel2012-02-136-39/+29
| | | | | | | | | Bug caused using wrong extension cache and probably the wrong procAddress table. - do not reuse local field value if not cached - issue resetState() after each createContextARBMapVersionsAvailable(..) query - remove cache entry for extension (copy/paste bug) - resetState() shall clean platform extProcAddressTable in specializations
* OpenGL ES/EGL OverhaulSven Gothel2012-02-1329-354/+715
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - GLProfile properly detects native EGL/ES1/ES2 on the 'desktop' device factory. This allows usage of Mesa's EGL/ES or Imageon's PVR emulation, etc. - GLProfile drops getDefaultDesktopDevice() and getDefaultEGLDevice() since both are aligned by getDefaultDevice(). - Fix GL_ARB_ES2_compatibility detection and utilize resulting isGLES2Compatible() where possible. This allows ES2 compatible desktop profiles to use core ES2 functionality (glShaderBinary() .. etc) even with a GL2ES2 desktop implementation. - EGLDrawable: If createSurface(..) fails (BAD_NATIVE_WINDOW) w/ surfaceHandle it uses windowHandle if available and differs. This allows the ANGLE impl. to work. - Properly order of EGL/ES library lookup: ES2: libGLESv2.so.2, libGLESv2.so, GLES20, GLESv2_CM EGL: libEGL.so.1, libEGL.so, EGL - *DynamicLookupHelper reference will be null if it's library is not complete (all tool libs, all glue libs and a ProcAddressFunc lookup function - if named). - Enhance GL version string (incl. ES2 compatible, hw/sw, ..) - GLBase: Fix docs and remove redundancies - Prepared (disabled) DesktopES2DynamicLibraryBundleInfo to be used for a real EGL/ES2 implementation within the desktop GL lib (AMD). Sadly it currenly crashed within eglGetDisplay(EGL_DEFAULT_DISPLAY), hence it's disabled.
* NEWT: Fix deadlock w/ AWT parent (NewtCanvasAWT) - focus window @ creation ↵Sven Gothel2012-02-081-3/+7
| | | | after releasing parent lock (AWT lock).
* javac - setup encoding to UTF-8Sven Gothel2012-01-232-7/+7
|
* GLDynamicLibraryBundleInfo: Remove 'nativewindow_x11' preload lib ↵Sven Gothel2012-01-233-12/+0
| | | | (implicitly loaded by NativeWindowFactory)
* Minor edit: Suppress USE_WGLVersion_Of_5WGLGDIFuncSet message when default.Sven Gothel2012-01-231-1/+3
|
* Bug 551 validation.Sven Gothel2012-01-231-0/+150
| | | | | | Turns out, that the culprit (at least on my Win7 NVidia machine) is the runtime property "-Dsun.java2d.opengl=false". When _not_ setting this prop. the test runs fine.
* Use glFlush() in favor of glFinish() for bug 548 and bug 533 fix - due to ↵Sven Gothel2012-01-231-4/+4
| | | | | | | | | | performance issues. Chris reported a better performance using glFlush() instead of glFinish() while maintaining stability in respect to the NV bug on OSX 10.6.8. Even though this is at release() where we would assume a passed GL sync point (swap buffers) the driver may involve a whole I/O roundtrip .. well.
* Merge branch 'master' of github.com:sgothel/joglSven Gothel2012-01-221-2/+15
|\
| * Merge pull request #43 from krisher/masterSven Gothel2012-01-191-2/+15
| |\ | | | | | | Fixed SWT threading policy violation when using worker mode for JOGL threading.
| | * Fix for use of SWT GLCanvas in headless mode (or with threading in worker ↵Dan Krisher2012-01-111-2/+15
| | | | | | | | | | | | mode). See discussion in Bugzilla #484
* | | Fix Bug 516 (Determine Java Version) / Fix OS X 10.5 linkage (weak ↵Sven Gothel2012-01-221-0/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | framework, NEWT) - Fix Bug 516 (Determine Java Version). See gluegen: 64639b805a32338385421f168e12c1ef7f749d00 - Fix OS X 10.5 linkage (weak framework, NEWT) - Use weak framework linkage for all modules and frameworks: AppKit, QuartzCore, Cocoa, OpenGL, JavaNativeFoundation - NEWT: Handle NS exception while calling OS X >= 10.6 only methods: - 'setAllowsConcurrentViewDrawing()' - 'setCanDrawConcurrently()'
* | NEWT/OSX: Window close (release) on main thread, ensuring no 'main thread' ↵Sven Gothel2012-01-191-1/+2
| | | | | | | | event is pending
* | NativeWindow/OSX: Fix Offscreen CALayer SIGSEGV @ Shutdown (Cleanup referencing)Sven Gothel2012-01-194-27/+62
| | | | | | | | | | | | | | | | | | | | - allocate CALayer w/ invoking init: [[CALayer alloc] init] - attach CALayer to JAWTSurfaceLayer w/o autorelease: surfaceLayers.layer = layer; // already incr. retain count - destroy CALayer @ JAWTWindow destroy
* | UI Test AWTRobotUtil's toFront*(): retry requestFocus() within loop.Sven Gothel2012-01-191-11/+14
| |
* | UI Test / AWTRobotUtil: Relax and fix focus testsSven Gothel2012-01-185-39/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - toFront*(..) uses the AWT Window focus state, instead of our AWTWindowFocusAdapter, which removes false negatives. Often the focus is already hold on the Window where no focus change will be recognized by our AWTWindowFocusAdapter. - assertRequestFocusAndWait(..) recovers from lack of focus-lost event (if received focus-gained) and only dumps the case - returns success. - Since assertRequestFocusAndWait(..) implicitly tests the passed FocusAdapter and relaxes the constraints (see above) no more post-call assertions on the FocusAdapter is being performed (removed). - assertRequestFocusAndWait(..) is no more used on AWT Window or Frame, see 1st note above!
* | NEWT/X11: Fix Insets determination for undecorated / child window.Sven Gothel2012-01-181-53/+86
| | | | | | | | | | | | | | | | | | | | | | | | Due to latest changes, a bug is disposed where the native 'updateInsets' attempts to determine the window insets by it's parent window (fall-back). The latter works only in case of a top-level window. Adding query to the WM whether the window is decorated (top-level) or not. Attempt to use the fall-back parent window method in case of a decorated window. This whole inset code based on the parent window is probably completly redundant, nevertheless we keep it alive until further notice.
* | NEWT: Use accessors to read/write postion and size, allowing better trace ↵Sven Gothel2012-01-189-132/+124
| | | | | | | | | | | | | | | | | | and controlling autoPosition; Restrict more fields to private where possible. WindowImpl's position and size is made private and accessed by it's getter and setter (definePosition/defineSize). This allows better tracing of value changes and ensures autoPosition is set to false.
* | NEWT/OSX: Cleanup 'javaWindowObject' @ window-close & avoid NPE; Disable ↵Sven Gothel2012-01-184-16/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lostFocus (resignKeyWindow) when in fullscreen mode; Ignore invalid key release/type events. - Cleanup 'javaWindowObject' @ window-close & avoid NPE Ensure that the direct window.close() impl. removes the global reference and that all use cases check for NULL pointer. - Disable lostFocus (resignKeyWindow) when in fullscreen mode Similar to the X11 KDE bug, OS X delivers a lostFocus event which we prevent from being processed in fullscreen mode. - Ignore invalid key release/type events In case of offscreen/onscreen switching (fullscreen/reparenting) via destroy/create, the still pressed key would be send to the new window and repeat the action (key typed). State validation discards the double processing.
* | Newt: Add fullscreen for offscreen windows (currently OSX only); Focus ↵Sven Gothel2012-01-182-98/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | handling; Misc. - Add fullscreen for offscreen windows (currently OSX only), - Focus handling - requestFocus() @ creation - remove requestFocus() delay in setFullscreen() since focus loss in fullscreen mode is caused by a KDE 'misbehavior' in general. See X11Common.c FS_GRAB_KEYBOARD, an experimental focus loss prevention, disabled due to it's behavioral impact of removing the ability to use WM keyboard commands (task switcher). - Remove pending events waiting longer than TO (1200ms)
* | NEWT/OSX: Cleanup NewtMacWindow header (sort, fix and add declarations); ↵Sven Gothel2012-01-173-123/+129
| | | | | | | | Remove warning of unused var
* | NEWTWindow Focus: Skip requestFocus() if already owning focus; ↵Sven Gothel2012-01-162-4/+10
| | | | | | | | | | | | | | | | | | | | | | setFullscreen() requests focus 'later'. We shall rely on the focus state, hence we can skip 'requestFocus()' if we already own the focus. This allows a fast-path especially when called from native code (mouse click). Request focus 'later' on setFullscreen() allowing native WM to complete event handling, this is required especially on X11 to guarantee a focused fullscreen window.
* | NewtCanvasAWT: Handle 'lost' child and fullscreen case.Sven Gothel2012-01-162-31/+62
| | | | | | | | | | | | | | NewtCanvasAWT may loose it's parent role (reparenting). In such cases it shall no more handle focus events. Focus handling is also no more desired in case the child is in fullscreen mode.
* | NEWT childWindow: No autoPosition, use 0/0 as default.Sven Gothel2012-01-161-4/+10
| |
* | NEWT/OSX CALayer Animation Fix: Use '[layer removeAllAnimations]', '[layer ↵Sven Gothel2012-01-162-11/+5
| | | | | | | | removeAnimationForKey: kCAOnOrderIn, kCAOnOrderOut, kCATransition]' doesn't work