summaryrefslogtreecommitdiffstats
path: root/src/newt
Commit message (Collapse)AuthorAgeFilesLines
* Redefine: isGLES3Compatible() and isGL4ES3(), i.e. allow GL4ES3 usage in ↵Sven Gothel2013-07-161-16/+54
| | | | | | | | | case proper ES3_compat is given. isGLES3Compatible() and isGL4ES3() of GLBase _and_ GLContext includes [ GL >= 4.3, GL >= 3.1 w/ GL_ARB_ES3_compatibility and GLES3 ]. Tested GL 'aliasing' w/ TestGLProfile01NEWT, i.e. isGL*() and getGL*().
* StringBuffer -> StringBuilderSven Gothel2013-07-152-3/+3
|
* Add Support for GL 4.3 (Bug 716) and ES 3.0 (Bug 717)Sven Gothel2013-07-151-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ES3 / GL4.3: - Update all EGL, GLX, WGL and GL (desktop and mobile) khronos headers to latest version. - GL3/gl3* -> GL/glcorearb* - Explicitly preserve ES2_compatibility and ES3_compatibility in header, most extension grouping was removed in new headers. - Always load all GLHeader to ensure proper extension association across all profiles. - Unified method signatures - Added GL_EXT_map_buffer_range to core - Using common 'glMapBufferImpl(..)' for all glMapBuffer(..) and glMapBufferRange(..) impl. - Init necessary fields of GL instances via 'finalizeInit()' called by reflection, if exist. This allows removing initialization checks, i.e. for all buffer validations. - BuildStaticGLInfo: Can handle new GL header structure, i.e. one CPP extenstion block incl. define + funcs. - GLJavaMethodBindingEmitter: Simply print the - No GL duplication due to new intermediate interfaces, see below - OO lineare inheritance (Added GL2ES3, GL3ES3 and GL4ES3 intemediates): GLBase - GL - GL2ES2 - GLES2 GLBase - GL - GL2ES2 - GL2GL3 - [ GL2, GL3 ] GLBase - GL - GL2ES2 - GL2ES3 - GL3ES3 - [ GL3 ] GLBase - GL - GL2ES2 - GL2ES3 - GL3ES3 - GL4ES3 - [ GLES3, GL4, .. ] - Expose 'usable' intermediate interfaces GL3ES3 and GL4ES3 in GLBase/GLProfile/GLContext via is*() and get*(). - GLContext*: - isGL3core() is true if [ GL4, GL3, GLES3 ] (added GLES3) - Added ctxProfile argument to allow handling ES versions: - getMaxMajor(..), getMaxMinor(..), isValidGLVersion(..) and decrementGLVersion(..) - mapGLVersions(..) prepared for ES ARB/KHR validation - EGLContext checks ES3 (via old ctx's GL_VERSION) - ExtensionAvailabilityCache adds GL_ES_Version_X_Y for ES. - Prelim tests w/ Mesa 9.1.3 GL Version 3.0 (ES profile, ES2 compat, ES3 compat, FBO, hardware) - OpenGL ES 3.0 Mesa 9.1.3 [GL 3.0.0, vendor 9.1.3 (Mesa 9.1.3)] - TODO: - Use KHR_create_context in EGLContext.createContextARBImpl(..) - More tests (Mobile, ..) +++ Misc: - GLContext*: - Complete glAllocateMemoryNV w/ glFreeMemoryNV.
* NEWT EDTUtil: Exposed weakness of EDTUtil usage due to usage of ↵Sven Gothel2013-07-0916-262/+367
| | | | | | | | | | | | | | | | | | | | | WeakReference, i.e. higher retention of Display instances. - WeakReference Change 99479bf3197cde8e89c5b499d135417863d521c7 - Refines commits: feb352145af1643a57eaae99c0342e6f5e0f2a2e dec4b02fe4b93028c85de6a56b6af79601042d6e 433e3914324b90c910b018bb7d9d80e814c67123 Reviews EDTUtil API and usage: - less confusing / more determined EDTUtil API - EDTUtil's thread shall only be reset and started when required (-> lazy) - EDTUtil's instance in Display shall be handled thread safe w/o extra blocking - EDTUtil's implementations (Default, SWT and AWT) shall be aligned / similar as much as possible Further note: SWT's EDTUtil (NewtCanvasSWT) shall not use a reused Display instance due to it's custom SWTEDTUtil. We may need to disable the ref. cache if custom EDTUtil (setEDTUtil) is intended (used).
* Fix SWTEDTUtil regression caused by ↵Sven Gothel2013-07-055-39/+67
| | | | | | | | | | | | dec4b02fe4b93028c85de6a56b6af79601042d6e, ensuring EDT is running for reused Display instances. Refine EDTUtil semantics of: - reset() - waitUntilStopped() AWTEDTUtil/SWTEDTUtil: Properly signal !running when shutdown SWTEDTUtil: Take SWT isDisposed() into account.
* NEWT Display.create: If reusing an existing instance, ensure EDT is running!Sven Gothel2013-07-051-4/+5
|
* GLWindow.shutdownRenderingAction: If on anim thread, simply stop ourselves ↵Sven Gothel2013-07-051-10/+15
| | | | (non-blocking)
* NEWT WindowImpl: Add little GCed / windowList-size stats at addWindow2ListSven Gothel2013-07-041-1/+5
|
* DefaultEDTUtil: If EDT is not started and task is null and wait intended, ↵Sven Gothel2013-07-041-1/+4
| | | | use nullTask ensuring to wait until EDT started.
* Fix NPE - Regression of commit 99479bf3197cde8e89c5b499d135417863d521c7Sven Gothel2013-07-041-1/+3
|
* NEWT: Using WeakReferences for global cache of Display, Screen and Window ↵Sven Gothel2013-07-045-80/+164
| | | | | | | | | | | | | instances; Removing ref. at API destroy() is wrong ; Allow GC to clear .. - Removing ref. at API destroy() is wrong - Since all instances can be recreated, removing ref at destroy() is simply wrong. - Keep weak references until GC collects, i.e. user does not claim them anymore. - Safe for Display, since it holds it's EDT thread. - Window/Screen .. if user abandons reference .. nothing we can do here. - Allow GC to clear .. No need to hold ref loonger than user.
* X11Window FullScreen: Toggle _NET_WM_BYPASS_COMPOSITOR not only for ABOVE .. ↵Sven Gothel2013-07-041-2/+2
| | | | but also for FULLSCREEN WM state.
* Revisit Bug 770 and Bug 771: Only use FLAG_IS_FULLSCREEN_SPAN if required; ↵Sven Gothel2013-07-047-82/+135
| | | | | | | | | | | | | At MonitoMode change, reset fullscreen if FLAG_IS_FULLSCREEN_SPAN is supported. - Bug 770: Only use FLAG_IS_FULLSCREEN_SPAN if required - If X11 WindowDriver _and_ virtual-screen-size > fullscreenViewport, - else we still use _NET_WM_STATE_FULLSCREEN on X11! - Bug 771: At MonitoMode change, reset fullscreen if FLAG_IS_FULLSCREEN_SPAN is supported - Since we may still use _NET_WM_STATE_FULLSCREEN on X11: - Pause fullscreen at monitorModeChangeNotify(..) - Resume fullscreen at monitorModeChanged(..)
* Remove deprecated methods.Sven Gothel2013-07-041-27/+0
| | | | | | | | | - Quaternion.isEmpty() - Texture.dispose(GL) - GLContext.getGLVersionMajor() / ..Minor() - GLContextImpl.bindPbufferToTexture() / releasePbufferFromTexture() - MouseEvent.getWheelRotation() -
* Revise commit 4c34f5980bddcdc84b10cb3bcbb96b365b9d471e (Bug 767): TAB, BS ↵Sven Gothel2013-07-032-13/+20
| | | | | | | | | and CR/ENTER are printable for NEWT KeyEvent and font handling. Fix regression. - Original behavior was treating CR/ENTER them as printable, lets keep it this way. - KeyEvent: Query these 3 whitespaces upfront, no need to incl. them in 'nonPrintableKeys'. - Fix regression: Native VK_ENTER was not change in commit 4c34f5980bddcdc84b10cb3bcbb96b365b9d471e.
* WindowImpl.consumeKeyEvent: Reduce DEBUG println and show println after ↵Sven Gothel2013-07-032-8/+10
| | | | propagating event to show whether it has been consumed.
* Fix Bug 767: TAB + BS are considered 'printable' - Compromise of 'editor' ↵Sven Gothel2013-07-021-9/+14
| | | | view and 'font-definition' view. ENTER not. Fix ENTER code: 0xa -> 0xd !
* Fix Bug 768 / NEWT Windows: Use layout dependent keySymbol, if independent ↵Sven Gothel2013-07-021-0/+3
| | | | keyCode is 0.
* Fix Bug 770 and 771Sven Gothel2013-07-023-140/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug 770: X11Window.c: - Request focus _before_ enabling EWMH flags (fullscreen or above) after resize and temporary invisibility. This actually allows us to keep the focus after resize and repositioning! - Set _NET_WM_BYPASS_COMPOSITOR implicit analog to _NET_WM_STATE_FLAG_ABOVE - Clean up _NET_WM_* flag names, avoiding name space collisions, i.e. adding FLAG! - Remove dead _NET_WM_STATE setting via direct window property (not working anyways) - Remove dead code: FS_GRAB_KEYBOARD X11/WindowDriver.java: - Enable _NET_WM_STATE_FLAG_ABOVE temporarily if FLAG_IS_FULLSCREEN && !FLAG_IS_ALWAYSONTOP - Override focusChanged(..) to react on focus lost/gained in case of temporarily enabled _NET_WM_STATE_FLAG_ABOVE. If focus is lost, disable _NET_WM_STATE_FLAG_ABOVE, otherwise re-enable it. WindowImpl.java: - FullscreenAction.run: Always use 'FLAG_IS_FULLSCREEN_SPAN' +++ Bug 771: WindowImpl.java: - Keep fullscreenMonitors and fullscreenUseMainMonitor values intact, allowing them to be tracked. Remove duplicates in FullscreenAction class. - MonitorModeListenerImpl.monitorModeChanged: Add fullscreen path: If the changed monitor is part of fullscreenMonitors, recalculate the viewport union and reset position and fullscreen-size. - MonitorModeListenerImpl: Try to regain focus after successful mode change.
* MonitorDeviceImpl: No need to nanoTime() ..Sven Gothel2013-06-301-6/+6
|
* ScreenImpl: Fix ScreenMonitorState add/remove reference, which shall only ↵Sven Gothel2013-06-301-13/+11
| | | | | | | happen at actual native create and destroy. .. otherwise usage of Screen.createNative() and a later Window creation would cause the ScreenMonitorState having 2 added listener - which in turn disables it's orig mode reset at Screen destruction.
* NEWT Screen ..: Typos / JNI signatureSven Gothel2013-06-302-2/+2
|
* X11 RandR: Cleanup RandR impl. selection, RandR13 setMode does not require a ↵Sven Gothel2013-06-304-26/+35
| | | | temp. display connection!
* NewtCanvasAWT: Add missing println if(DEBUG) decorationSven Gothel2013-06-301-1/+3
|
* Add Comparable<?>: Point*, Dimension*, Rectangle*, SurfaceSize* and ↵Sven Gothel2013-06-305-11/+131
| | | | | | | | | | | MonitorMode* ; Sort List<MonitorMode> in descending order to be well determined. Add Comparable<?>: Point*, Dimension*, Rectangle*, SurfaceSize* and MonitorMode*: - Compare square values - See API doc for order of special semantics (flags, rotation, ..) Sort List<MonitorMode> in descending order to be well determined: - Removes order by native mode id, give user a reliable natural order.
* NEWT WindowImpl/GLWindow: @ JVM Shutdown, force stop animation thread w/o ↵Sven Gothel2013-06-252-3/+34
| | | | blocking.
* NEWT: EDTUtil.invokeStop(..) gets 'wait' argument, allowing non-blocking ↵Sven Gothel2013-06-255-14/+30
| | | | shutdown. DisplayImpl.shutdownAll(): Don't block.
* NEWT: Don't invoke external keyboardFocusHandler for auto-repeat keys ↵Sven Gothel2013-06-242-4/+8
| | | | | | (NewtCanvasAWT, ..) .. otherwise an auto repeated key would cause fast focus traversal, not intended.
* NEWT Windows WindowDriver: Suppress LOCK_SURFACE_CHANGED, no semantics in ↵Sven Gothel2013-06-241-1/+6
| | | | | | GLDrawable on Windows. FIXME: Validate against EGL surface creation: ANGLE uses HWND -> fine!
* Refine cb7118fc875b6722803e4b11d5681671962a8d3a: Unify get next/prev focus ↵Sven Gothel2013-06-241-2/+2
| | | | component method.
* Fix NewtCanvasAWT focus traversal for Java7 (Take 2): Commit ↵Sven Gothel2013-06-231-12/+7
| | | | | | | | | | | | 70bf3a4ec44504b86294a332255aaae8d2e86bf4 was not sufficient. Commit 70bf3a4ec44504b86294a332255aaae8d2e86bf4 did not work out on Windows. Solution now gathers the next or previous 'to be focused' component, using the FocusTraversalPolicy of the visible/focusable/enabled container. Then we simply request it's focus. Works w/ Java7 on Linux and Windows.
* Fix NewtCanvasAWT focus traversal for Java7: All unit tests fail w/ Java7, ↵Sven Gothel2013-06-231-2/+10
| | | | | | | | i.e. AWT Component's transferFocus() does nothing if component does not hold the focus. .. this seems to be violating the AWT 'spec' .. however. Workaround: Request focus before transfering it to the next/previous element.
* Fix Bug 761 (part 2/2): NEWT registers one customShutdownHook @ ↵Sven Gothel2013-06-234-36/+109
| | | | | | | | | | | | | | | | | | | | | | | NativeWindowFactory.shutdownHook head, allowing proper resource cleanup. 1 WindowImpl.shutdownAll(): - For all instances: - mark invalid (causes any user thread to disregard the window) 2 ScreenImpl.shutdownAll(): - Removed own shutdown-hook! - For all instances: - Reset ScreenMonitorState 3 DisplayImpl.shutdownAll(): - For all instances: - Remove EDT - closeNativeImpl Manually tested on X11 w/ NV and ATI Catalyst (fglrx) - DFLAGS="-Djogl.debug.GLDrawable -Dnativewindow.debug.X11Util -Dnativewindow.debug.NativeWindow -Dnewt.debug.Display -Dnewt.debug.Screen -Dnewt.debug.Window" - java $DFLAGS com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT -time 2000 -sysExit testExit - valid arguments for sysExit: testExit, testError, displayExit, displayError
* GLWindow: Mention GLStateKeeper's GL state preservation in API docSven Gothel2013-06-231-2/+13
|
* NEWT/X11: Proper static initSingleton() sequence.Sven Gothel2013-06-233-5/+6
|
* Refine 893cf0c8c32edf231dbf418d45d3181532d2402b: Partial revert and issue ↵Sven Gothel2013-06-183-17/+25
| | | | | | | | | | | | forceRelayout at end of applet.start(); Cleanup AWTKeyAdapter. Refine 893cf0c8c32edf231dbf418d45d3181532d2402b: Partial revert and issue forceRelayout at end of applet.start(); - Seems the workaround of OSX CALayer positioning bug is timing dependent, i.e. stopped working when disabled DEBUG output. - Move NewtCanvasAWT creation and attachment back to init() - Issue extra forceRelayout (if OSX) at end of start() .. works 'most of the time'. Cleanup AWTKeyAdapter: Adapt code style of keyPressed() to keyReleased().
* NewtCanvasAWT: Issue 'setFocusable(..)' at configureNewtChild(..)Sven Gothel2013-06-181-3/+4
|
* JOGLNewtApplet1Run: Defer 'newtCanvasAWT' creation and attachment to ↵Sven Gothel2013-06-181-15/+18
| | | | | | | | | | | | | | | | | applet.start() (only once), working around 'OS X' CALayer positioning bug. The NewtCanvasAWT workaround for the 'OS X' CALayer positioning bug(*) may only work if parent is not only dislayable, but also visible. (*): Workaround resizes the component 2x, forcing a relayout. ++ RequestFocus after setVisibile(true). +++ Clear references to glWindow, newtCanvasAWT @ destroy.
* Fix regression of 31e72d2f2d953352b2a8c83368039ecca8139d49: Modifier SHIFT ↵Sven Gothel2013-06-171-2/+3
| | | | needs to be recognized (-> horiz. scroll)
* Fix Bug 688: Removal of NEWT KeyEvent.EVENT_KEY_TYPED and ↵Sven Gothel2013-06-175-23/+13
| | | | KeyListener.keyTyped(KeyEvent) - Part2: API Documentation and Comments
* Fix Bug 688: Removal of NEWT KeyEvent.EVENT_KEY_TYPED and ↵Sven Gothel2013-06-1711-77/+19
| | | | KeyListener.keyTyped(KeyEvent)
* AWTGraphicsConfiguration: Allow null capsRequested; NewtCanvasAWT: Avoid NPE ↵Sven Gothel2013-06-151-2/+2
| | | | @ addNotify() w/o newtChild
* Fix Bug 750: Leaked X11 ColorMap for each created X11 Window in NativeWindow ↵Sven Gothel2013-06-121-0/+7
| | | | | | | (dummy) and NEWT Free the colormap at WindowDestroy, which we have created at WindowCreate w/ AllocNone. Due to the fact we used 'AllocNone' the leak is minimal though ..
* Adapt to GlueGen commit 1a01dce6c42b398cdd68d405828774a3ab366456Sven Gothel2013-06-112-16/+15
|
* NEWT: MouseEvent Ctor: Use proper float[] rotationXYZ and float ↵Sven Gothel2013-05-165-36/+57
| | | | rotationScale arguments.
* Fix Bug 723: Remove VK_KP_<Cursor> numpad key-codes, use general VK_<Cursor> ↵Sven Gothel2013-05-166-80/+83
| | | | | | | | | | | | | | | | key-codes; Respect numpad printable keys; Use keySym for numpad if possible. - KeyEvent keyCode/keySym values re-ordered! - Remove VK_KP_<Cursor> numpad key-codes, use general VK_<Cursor> key-codes. Numpad cursor keys are not supported on some platforms (Windows), or not configured on most X11 configurations. - Respect numpad printable keys, i.e. don't treat them as non-printable. - Use keySym for numpad if possible. Numpad keys require modifiers, hence X11 and Windows shall return keySym.
* Fix NEWT MultiMonitor Regression: Use case w/o attached monitor, and NPE ↵Sven Gothel2013-05-092-9/+24
| | | | | | | | | (Cache) in ScreenImpl.getVirtualMonitorDevice(..). W/ RandR13, we can have a case of an Output/CRT w/o valid modes, indicating a switched off or detached monitor. ScreenImpl.getVirtualMonitorDevice(..) requires a Cache .. due to MonitorModeProps.streamInMonitorDevice(..)
* NEWT MonitorMode: Refine 081177f2433be50e3b5d46385c2f0f3f96311ed8: Reduce ↵Sven Gothel2013-05-071-1/+1
| | | | EDT roundtrip when resize/positioning on MonitorMode changed ..
* NEWT Multiple Monitor Mode: Fix monitorModeChanged(..) event id, ↵Sven Gothel2013-05-073-9/+11
| | | | WindowImpl.monitorModeChanged(): Resize/position if not fitting into virtual screen viewport.
* NEWT Multiple Monitor Mode: Add missing 'collect' impl. for NEWT/AWT impl.Sven Gothel2013-05-071-4/+43
|