aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Bug 1202 - Add support of Adaptive Vsync via [GLX|WGL]_EXT_swap_control_tearSven Gothel2015-08-2728-193/+336
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [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 +++
* GLContextImpl.setRendererQuirks(..): Reduce duplicated code of adding quirksSven Gothel2015-08-261-45/+31
|
* Merge branch 'Bug1178' of https://github.com/xranby/joglSven Gothel2015-08-261-14/+44
|\
| * Bug 1178: X11UnderlayTracker: Resend identical KeyCode, KeySymbol and KeyCharXerxes Rånby2015-08-251-6/+2
| | | | | | | | Signed-off-by: Xerxes Rånby <[email protected]>
| * Bug 1178: Fix cc3: Set position using LocationOnScreen coordinates.Xerxes Rånby2015-08-251-8/+42
| | | | | | | | Signed-off-by: Xerxes Rånby <[email protected]>
* | Bug 1188: NEWT WindowsWindow.c: Better support for 'isOnBottom' on Windows ↵Sven Gothel2015-08-261-14/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Fullscreen on Bottom not working though) - Terminology - ALWAYSONBOTTOM -> isOnBottom - ALWAYSONTOP -> isOnTop - Better support for 'isOnBottom' on Windows - Refine 'SetWindowPos(..)' calls to handle isOn[Top|Bottom] - Refine 'ShowWindow(..)' calls to handle isOnBottom - Intercept WM_WINDOWPOSCHANGING to enforce isOn[Top|Bottom], i.e. change params (hwndInsertAfter and flags). - Fullscreen on Bottom not working - While we change all flags appropriately (NOACTIVATE, ..) and don't issue CDS_FULLSCREEN is on bottom, Windows seems to enforce the window to be on top if it is sized to the screen maximum.
* | Bug 1188: Fix API doc of getSupportedStateMask(); Misc Changes (see below)Sven Gothel2015-08-254-52/+33
| | | | | | | | | | | | | | | | - Fix STATE_MASK_CREATENATIVE - Simplify resetStateMask() - Windows WindowDriver: Remove STATE_MASK_STICKY from supported states - TestGearsNEWT: Use NEWTDemoListener
* | NEWT WindowsWindow.c: Fix return value; Add tracking of inOn[Bottom|Top]Sven Gothel2015-08-251-4/+24
| |
* | Bug 1188: Introduce getSupportedStateMask() implemented via WindowDriver's ↵Sven Gothel2015-08-2115-59/+273
| | | | | | | | | | | | | | | | | | | | | | | | | | getSupportedReconfigMaskImpl() - See getSupportedStateMask() for semantics - getSupportedReconfigMaskImpl() result now used for isReconfigureMaskSupported() - getSupportedReconfigMaskImpl() implementations: - Full featured: X11, Windows and OSX - X11: Use WindowManager Atoms for certain features (dynamic) - Others: Use fixed features. - TODO: Consider avoiding actions if not supported.
* | Bug 1188: Refine reconfig state bitsSven Gothel2015-08-202-8/+8
| |
* | Bug 1196: Fix Unresolved strncpy_s (MSVCRT) on WinXPSven Gothel2015-08-201-2/+8
| | | | | | | | | | | | | | | | | | | | Unresolved strncpy_s (MSVCRT) on WinXP, as shown w/ dependency walker (red module, red unresolved line). Mapped: _tcsncpy_s -> strncpy_s (!UNICODE). On WinXP MSVCRT has no strncpy_s. _tcsncpy_s(sOut, sOutLen, s, len) -> bound-check + _tcsncpy(sOut, s, len)
* | Merge branch 'master' of git://github.com/gouessej/joglSven Gothel2015-08-201-28/+73
|\ \
| * | 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
| | |
* | | Bug 1188: Cleanup public/private[reconfig, non-reconfig] state bitsSven Gothel2015-08-193-17/+19
|/ / | | | | | | | | | | | | | | | | - STATE_BIT_FULLSCREEN_SPAN is private and used for reconfigure, hence STATE_BIT_COUNT_RECONFIG is needed. - STATE_BIT_FULLSCREEN_SPAN is added at the end of public state bits - PSTATE_BIT_MINMAXSIZE_SET is unused.
* | 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-1911-1505/+2121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 1188: Add @since 2.3.2 tagSven Gothel2015-08-182-14/+86
|
* Bug 1193: ShaderCode: Add SUFFIX_COMPUTE_SOURCE/SUFFIX_COMPUTE_BINARY; Add ↵Sven Gothel2015-08-181-3/+22
| | | | @since 2.3.2 tag
* Merge branch 'master' of git://github.com/gouessej/joglSven Gothel2015-08-181-11/+22
|\
| * 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
| |
* | Merge branch 'Bug1183' of https://github.com/xranby/joglSven Gothel2015-08-181-0/+8
|\ \
| * | Bug 1183: X11RandR13 XRRGetScreenResourcesCurrent _occasionally_ reports ↵Xerxes Rånby2015-08-161-0/+8
| |/ | | | | | | empty data
* / Bug 1192: NEWT native/X11Display.c Cleanup JNI signatures in commentsXerxes Rånby2015-08-131-6/+6
|/
* Bug 1188: Windows: Implement unresizable using appropriate windows stylesSven Gothel2015-08-122-115/+51
| | | | | | | - to avoid resizing when toggling resizable (change of window border) we maintain 'RECT insets' in our WindowUserData struct and fix the client -> top position late in NewtWindow_setVisiblePosSize(..) after any style change.
* Bug 1188: Refine Maximized on X11 / Impl. Maximized and Iconify on WindowsSven Gothel2015-08-128-179/+348
| | | | | | | | | | | | | | | | | | | | | | | | | | | WindowImpl - remove updateMinMaxSize(..) - unused info - fix appendStateToString: show all maximized state changes if reconfig - add sizePosMaxInsetsChanged(..) and sendMouseEventRequestFocus(..) accumulating multiple callbacks from impl. - add: maximizedChanged(..) notification from native impl. - refine manual maximized mode used for OSX and Windows (single extent) - reconfigMaximizedManual(..) - resetMaximizedManual(..) X11 WindowDriver: - Update maximized at xreconfig, read from _NET_WM_STATE - Use less Java callbacks from JNI Windows WindowDriver: - Use native maximized, if HORZ && VERT, otherwise use manual maximized for single extent. - Invisible of top-window -> MINIMIZED/ICONIFY showing the app in task-bar.
* NEWT WindowImpl + WindowDriver: Remove updateInsetsImpl(Insets insets) and ↵Sven Gothel2015-08-1111-64/+5
| | | | | | rely solely on insetsChanged(..) (event driven) Only affected WindowDriver is AWT, which now updates the insets when setVisible(true).
* NEWT OSX WindowDriver: Must wait for resize on main-thread (Related to Bug 1188)Sven Gothel2015-08-111-1/+1
| | | | | | If not waiting for resize on main-thread, corruption may happen at continued rendering. This has been experienced w/ maximize-horizontally (Bug 1188).
* NEWY WindowImpl appendStateBits(..): Refine maximized; Refine WindowDriver's ↵Sven Gothel2015-08-114-7/+14
| | | | reconfig DEBUG
* Bug 1188: OSX: Add maximize horz/vert, implemented manuallySven Gothel2015-08-111-4/+44
|
* Merge branch 'master' of https://github.com/xranby/joglSven Gothel2015-08-111-2/+16
|\
| * Bug 1178: Fix cc10 regression caused by the fix for cc7.Xerxes Rånby2015-08-101-2/+16
| | | | | | | | | | | | | | | | | | | | | | Bug 1178 cc10: We no longer throw an ExceptionInInitializerError when X11 is not available. Fix 1178 cc10: We need to use an X11 resource in the constructor in order to throw an ExceptionInInitializerError if X11 is not available. We can resolve this by query for the X11 display and screen inside the constructor. Signed-off-by: Xerxes Rånby <[email protected]>
* | NEWT WindowDriver's reconfig DEBUG: Add end-of-method dump of current ↵Sven Gothel2015-08-113-6/+13
| | | | | | | | states, dump current and new states upfront.
* | Bug 1188: Fix regression on OSX setVisible: in-visibility never reached on ↵Sven Gothel2015-08-111-5/+5
| | | | | | | | | | | | | | | | | | | | child windows / Fix [Un}Resizable style - Fix regression on OSX setVisible: in-visibility never reached on child windows - Fix 'typo' while porting to bit-mask, i.e. '!=' -> '=='. - Fix [Un}Resizable style - Use NSResizableWindowMask only for !Undecorated and if STATE_MASK_RESIZABLE is set.
* | WindowImpl appendStateBits(..): Fix POINTER* representationSven Gothel2015-08-111-1/+3
| |
* | Bug 1188: Fix regression on X11 setVisible: in-visibility never reached on ↵Sven Gothel2015-08-113-7/+11
|/ | | | | | | | | child windows It has been experienced that UnmapNotify is not sent for child windows when using IconicState! Hence the visible:=false event never reaches the Window, causing an error. This patch only uses IconicState for top-level windows and if requested.
* Merge branch 'master' of git://github.com/gouessej/joglSven Gothel2015-08-104-11/+466
|\
| * 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 1183: Cleanup x11/RandR javadoc and native/X11RandR13 signature commentsXerxes Rånby2015-08-102-3/+3
| |
* | Bug 1188, Bug 1186: NEWT Window: Support non-resizable, minimize, maximize, ↵Sven Gothel2015-08-1028-1345/+2604
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | alwaysOnBottom and sticky/all-desktop (Part 1) Change also implements Bug 1186: 'NEWT Window: Use a Bitfield holding all state flags and expose it accordingly', since it is essential for an efficient implementation. Part 1: - Bug 1186 - Using Bitfield, holding public (Window) and private state bits/mask - Bug 1188 - Window adds: - [is|set]AlwaysOnBottom(..), - [is|set]Resizable(..), - [is|set]Sticky(..), - [is|set]Maximized(..), - isChildWindow(), - Full implementation for X11 - TODO: Implement for OSX and Windows - Manual tests: - TestGearsES2NEWT, TestGearsES2NEWTSimple and TestGearsES2NewtCanvasAWT utilize new NewtDemoListener, which has a key-listener to perform all [new] actions. See source code of NewtDemoListener.
* Bug 1062: Utilize 'GLProfile.disableOpenGLDesktop' for EGLDrawableFactory ↵Sven Gothel2015-08-052-44/+54
| | | | | | | | | | | 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.
* Remove unused jogamp.opengl.SystemUtilSven Gothel2015-08-051-18/+0
|
* Bug 1183: Handle NULL return values for native RandR13 calls, which suppose ↵Sven Gothel2015-08-052-6/+13
| | | | | | | | | | | | | | to return 'int[]' Certain native RandR13 functions shall return 'int[]', but will bail out early in case of an error or lack of resources. The latter is true for getMonitorDeviceIds(..) where 'XRRScreenResources->ncrtc <= 0', causing return value NULL. This patch handles the NULL return values, however, the root cause of having 'XRRScreenResources->ncrtc <= 0' _occasionally_ lies within the Raspi X11 driver I am afraid?!
* Fix commit 24b646d387b3d85467bb22763b016a556d665707: Add missing semicolonSven Gothel2015-08-021-1/+1
|