aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* NEWT iOS: Support Multi-Touch Events, PixelScale, ..Sven Gothel2019-07-0814-587/+979
| | | | | | | | | | | | | | | | | Note: Two subsequent commit will add some required change in the native UIWindow/UIView creation methods to actually make the NEWT view being displayed ;-) The demo 'com.jogamp.opengl.demos.ios.Hello' demonstrated a standard NEWT application running on iOS. Previous NativeWindow wrap-around demo is preserved in 'com.jogamp.opengl.demos.ios.Hello1'. Tested on ipad 11'inch arm64 and x86_64 simulation: - Using GearsES2 demo - PixelScale 1f, 2f and 0f - last two using max pixel scale - Touch w/ GearsES2 works: -- 1 finger rotate -- 2 finger drag -- 2 finger pinch-zoom gesture detection
* NEWT iOS / MacOS: Simplify setJavaWindowObjectSven Gothel2019-07-082-15/+17
|
* iOS / MacOS: PixelScale UpdateSven Gothel2019-07-0810-110/+118
| | | | | | | | | | - IOSUtil/OSXUtil: Return float value and refine name to GetScreenPixelScale* - WindowDriver's updateMaxScreenPixelScaleByDisplayID(..) and updateMaxScreenPixelScaleByWindowHandle(..) will only update the maxPixelScale, as actual user pixelSize change should not be triggered here. A user pixelSize adaption to the changed underlying scale capabilities (e.g. switch monitor) should be supported by the implemented WindowDriver's: updatePixelScale(..) called by native code.
* Copyright: Add missing Copyright tagSven Gothel2019-07-085-2/+57
| | | | | | | | | Adding the missing JogAmp copyright tag on certain files. Currently in debate whether 'JogAmp Community' is a legal Copyright tag in the first place, we might need to add (or replace it with) my authorship. However, as authorship is well documented via the git repository, this should be no real world issue.
* NEWT WindowImpl.doPointerEvent: Use native short[] for pNamesSven Gothel2019-07-085-29/+26
| | | | | | and not int[], this avoid copying in case given pNames are normalized. This is benecifical for X11, Windows and the upcoming iOS touch/pointer support.
* Fix build test jar regression (commit bba73bc096250a3c7fc036d84b1ea054d1b70b06)Sven Gothel2019-07-082-3/+4
| | | | java.part.test.all was erroneously removed, redefined.
* NEWT: Align native MacOS / IOS file- and classnamesSven Gothel2019-06-265-104/+104
|
* iOS: EAGLLayer FBO w/ DEPTH buffer workaround 1Sven Gothel2019-06-242-0/+13
| | | | | | | | | | | | | | | Notable bug as mentioned before: 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). This workaround re-binds the used color renderbuffer for EAGLLayer presentation at the end of the FBO drawable instantiation. FBO DEPTH buffer works now as demonstrated w/ GearsES2. We have to issue one more test now, using a demo using an FBO itself.
* iOS: Clean up promotion of EAGLLayer use down to FBObjectSven Gothel2019-06-246-150/+239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initial commit bba73bc096250a3c7fc036d84b1ea054d1b70b06 hacked its path using a context global EGLLayer instance attachement. The hack was good for the first demo, however, it forbid using other FBObjects etc on the way. Properly specifying FBObject.Attachment.StorageDefinition, allowing the user to inject code for selected FBO attachements to define their storage. This might be useful for different platforms as well - however, it is OS agnostic and instance specific now. In this sense, GLFBODrawableImpl, hosting FBObject, has a more specific instance of FBObject.Attachment.StorageDefinition for color-renderbuffer. It is passed along newly created color renderbuffer. GLDrawableFactoryImpl.createGLDrawable uses a derived interface, OnscreenFBOColorbufferStorageDefinition which is defined in IOSEAGLDrawableFactory and return by its getter. GLDrawableFactoryImpl.createGLDrawable is therefor platform agnostic again. Bottom line is, as more platforms will be added, these semi-public interfaces have to adapt to suit them all .. All this due to iOS architecture for 'onscreen rendering' using a FBO which shares its color renderbuffer storage with the EAGLLayer, associated with the UIView. A bit weird maybe in first sight, but efficient for creating cheap hardware design ;-) Only criticism here is that Apple didn't bother using EGL and an extension.
* iOS: Initial working commit supporting iOS (ipad pro 11)Sven Gothel2019-06-23110-281/+11303
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Bug 1381: Keep host PixelFormat functional using requested immutable ↵Sven Gothel2019-05-132-13/+34
| | | | alphaRequested + add appropriate API doc
* Update CSS; Add responsive viewport design tagSven Gothel2019-05-065-0/+10
|
* Update CSS; Add responsive viewport design tagSven Gothel2019-05-061-0/+2
|
* Merge remote-tracking branch 'xranby/robovm'Sven Gothel2019-04-121-0/+58
|\
| * doc/misc/robovm.txt: Update to JogAmp JOGL 2.3.2 and last libre RoboVM 1.6.1Xerxes Rånby2015-10-301-7/+7
| |
| * doc/misc/robovm.txt: Explore low footprint deployment 6.3MbXerxes Rånby2015-09-081-5/+36
| |
| * doc/misc/robovm.txt: Mention -rvm: runtime flagsXerxes Rånby2015-08-201-0/+12
| |
| * doc/misc/robovm.txt: Writedown howto use JogAmp in combination with RoboVM AOTXerxes Rånby2015-08-201-0/+15
| |
* | Bug 1358: 'Honor' SWT's projection of High-DPI Scaling (Reading hidden pixel ↵Sven Gothel2019-04-104-65/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dimensions) Christian reported this bug and described multiple pathways. This change usese the following: - access to getClientAreaInPixels w/ fallback of - DPIUtil.autoScaleUp(getClientArea()) I hardly have tested this on Linux/GTK, even though I use a High DPI monitor, maybe just because of it and Eclipse _poor_ state of proper UI presentation. Christian: Please test this .. if buggy, reopen quick for release 2.4.0 SWT/GTK High-DPI is a PIA: - GDK_SCALE renders offscreen and scales the image (wow & ugly) - GDK_DPI_SCALE works at least on the fonts properly - swt.autoScale is pretty much like: What will be scaled? It scales some icons in Eclipse, not fonts and result in Eclipse looks horrible. Maybe I just made this patch to vent about this poor state of things. Notable: KDE looks great and uses DPI, firefox some GDK_DPI_SCALE equivalent (OK) One also wonders why there is only a single scale dimension, where DPI differs x/y! But enough of my rant :)
* | AWTRobotUtil Cleanup: Use specific argument types (AWT, NEWT, ..)Sven Gothel2019-04-1042-210/+199
| | | | | | | | | | | | | | Most fixed, some marked as FIXME left still .. Also fixed AWTRoboUtil regression of last commit(s), where AWTRobotUtil.addClosingListener(..) called to itself causing a StackOverflowError.
* | Bug 1362: Final general lifecycle fixes of unit testsSven Gothel2019-04-105-39/+82
| | | | | | | | | | | | | | SWT unit tests must wait while issuing 'display.readAndDispatch()' so essential event dispatching won't get blocked. Previous AWTRobotUtil cleanup and these patches ensure proper lifecycle checks.
* | Cleanup AWTRobotUtil ..: Add 'Runnable waitAction' also to waitForFocus and ↵Sven Gothel2019-04-1032-163/+207
| | | | | | | | closeWindow, etc ..
* | Cleanup AWTRobotUtil 3: TestUtil.WindowClosingListener must be publicSven Gothel2019-04-091-1/+1
| |
* | Cleanup AWTRobotUtil 2: Align signatures of waitForVisible(..) and ↵Sven Gothel2019-04-0995-447/+452
| | | | | | | | waitForRealized(..)
* | Cleanup AWTRobotUtil: Extract GLTestUtil + NewtTestUtil; all three based on ↵Sven Gothel2019-04-0932-287/+536
| | | | | | | | TestUtil
* | Bug 1362: Minimal action required: setBackground of the parent canvas before ↵Sven Gothel2019-04-094-17/+16
| | | | | | | | | | | | | | reparenting! Bug 1362 fix or workaround: Seems SWT/GTK3 at least performs lazy initialization Minimal action required: setBackground of the parent canvas before reparenting!
* | Bug 1362: Minimal action required: setBackground + fillRectangle of some ↵Sven Gothel2019-04-091-5/+9
| | | | | | | | | | | | | | space in canvas ONCE before reparenting! Bug 1362 fix or workaround: Seems GTK3 at least performs lazy initialization Minimal action required: setBackground + fillRectangle of some space in canvas ONCE before reparenting!
* | Bug 1362: TestSWTAccessor02NewtGLWindow demonstrates a fix by letting the ↵Sven Gothel2019-04-092-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Canvas PAINT! This commit shows the very little change set required to allow working on SWT >= 4.10 + GTK3, i.e. adding the PAINT listener to Canvas and letting it paint. Almost too ridiculous? I stumbled over it by creating this test in the first place when copying the 01 test -> 02 and adding the native parenting. Possible explanation: The parent Canvas may need to paint once at least due to some lazy initialization within SWT or GTK3?!
* | Bug 1362: Unit tests: Report SWT and GTK VersionSven Gothel2019-04-092-0/+4
| |
* | Bug 1362: Add two self contained unit tests to validate SWT >= 4.10 + GTK3 ↵Sven Gothel2019-04-093-1/+450
| | | | | | | | | | | | | | | | | | | | | | | | | | issues TestSWTAccessor01: Simply tests SWTAccessor's returned native window handle. Works on SWT + GTK2 and SWT + GTK3. TestSWTAccessor02NewtGLWindow: Uses same returned native window handle and tests a GLWindow.reparentWindow(..) operation all rolled out and implemented here ad-hock (comparable to NewtCanvasSWT). This shall allow simplified debugging. Testing: - SWT + GTK2: Works - SWT + GTK3: Bug reproduced
* | Bug 1190: Adapt cross build TARGET_PLATFORM_USRLIBS and ↵Sven Gothel2019-04-084-18/+18
| | | | | | | | TARGET_PLATFORM_SYSROOT (android)
* | Bug 1190: Adapt cross build scriptsSven Gothel2019-04-088-103/+15
| |
* | Bug 1362: Wrong 'fake' swt.jar config for isLinuxARM64, isLinuxARMv6 and ↵Sven Gothel2019-04-053-14/+15
| | | | | | | | | | | | | | isAndroid We intend to attach a non-matching swt.jar for these build nodes, to at least pass the javac pass w/o testing on those platforms.
* | Bug 1362: Test against SWT 4.3 and 4.11Sven Gothel2019-04-052-3/+5
| | | | | | | | | | 4.3 is still working w/ GTK2 4.11 is not working as described by Wade
* | Bug 1362: SWTAccessor: c -> cGTK for readabilitySven Gothel2019-04-051-19/+20
| |
* | Bug 1362: build/test: Use new SWT 4.10 swt.jar (instead of swt-debug.jar)Sven Gothel2019-04-0512-25/+34
| |
* | Bug 1362: Replace SWT 4.3.0 -> 4.11.0Sven Gothel2019-04-0546-7035/+839
| | | | | | | | | | | | https://download.eclipse.org/eclipse/downloads/drops4/R-4.11-201903070500/ This binary make/lib drop is only required for build and unit tests.
* | Bug 1362: Enhancing SWT/GTK Support for GTK 2.90, SWT > 4.8 (?)Wade Walker2019-04-051-9/+40
| |
* | Bug 1370: Call from Main-Thread: NW's OSXUtil.CreateNSWindow0(..) and NEWT's ↵Sven Gothel2019-04-054-27/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WindowDriver.createWindow0(..) OSX 10.14.3 Mojave issues a WARNING: NSWindow drag regions should only be invalidated on the Main Thread! This will throw an exception in the future. The complaint about NativeWindow (NW)'s OSXUtil.CreateNSWindow0(..) might be valid, which does create a NS Window instance w/ NSView and framebuffer initialized. However, the complaint about NEWT's WindowDriver.createWindow0(..) is not, since the initialization incl framebuffer happened later on the main thread. Regardless, encapsulated both construction fully to run on the Main-Thread. +++ Originally the Main-Thread design spec was like: Must run on Main-Thread when or after making visible. Oh well.
* | TestVersionSemanticsNOUI: Adapt to upcoming NON_BACKWARD_COMPATIBLE version ↵Sven Gothel2019-04-032-52/+4
| | | | | | | | 2.4.0
* | Windows scripts: Use JDK/JRE 1.8.0_121Sven Gothel2019-04-039-27/+27
| |
* | Bug 1367: Adapt to TempFileCache & TempJarCache ChangesSven Gothel2019-04-031-1/+1
| |
* | Bug 1367: Adapt to TempFileCache & TempJarCache ChangesSven Gothel2019-04-035-5/+5
| |
* | Bug 1366 - Use String.format((Locale)null, "..." ..) avoiding Locale output ↵Sven Gothel2019-03-3011-16/+27
| | | | | | | | for System related Operations
* | Bug 1316: MacOSX: Keep *.dylib (Don't move to *.jnilib)Sven Gothel2019-03-304-53/+9
| | | | | | | | | | | | | | | | Since Java8 (or even earlier), JRE on OSX uses *.dylib native library suffix instead of *.jnilib when automatically searching and loading them. This is not easily being recognized by JogAmp, since we explicitly name the native libraries with full path when testing with our TempJarCache.
* | Bug 1348: Fix X11 XI MultitouchSven Gothel2019-03-277-110/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I got access to a touchscreen laptop w/ Debian 9, hence I could fix and test the implementation. X11 DisplayDriver.java: - Store and pass through xi_opcode of XI extension, queried at initialization stage X11Window.c Fixes: - Initialize JavaWindow's xiTouchCoords[].id w/ -1, as required to track the pointer - Pass through xi_opcode as stored in X11 DisplayDriver X11Display.c Fixes: - sendTouchScreenEvent: Throw RuntimeException if 0 > actionId (Internal Error: based on xiTouchCoords[].id tracking) - DispatchMessages's windowPointer determination: -- Query potenial XI Event first: IF XI Event, must use XIDeviceEvent's event Window -- Only IF not an XI Event, we can use evt.xany.window as the event window - DispatchMessages's XI Event Handling: -- Always break deviceid search loop if id found, preserving index and time spend Works on my Debian 9 device, tested w/ com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT: - One pointer (finger) press, drag and release (click) - PinchToZoomGesture works - DoubleTabScrollGesture works +++ Potential Issues: JavaWindow's xiTouchCoords[].id accuracy is crucial to pointer tracking during XI_TouchBegin -> XI_TouchUpdate -> XI_TouchEnd. In the normal course of action: - XI_TouchBegin sets the id, assuming it is yet set - XI_TouchUpdate assumes it is set - XI_TouchEnd clears the id, assuming it is set This field in the JavaWindow array only gets reset to -1 once at native window creation. We may need to figure out when to reset this field to -1. If the XI_TouchEnd events would get lost for whatever reason, the above tracking state would be broken.
* | Update HowToBuild.htmlSven Gothel2019-03-271-34/+6
| | | | | | | | | | Minimum supported Debian version is now Debian 9 or Stretch to minimize maintenance. Note: No other GNU/Linux version has been validated so far.
* | Merge branch 'master' of github.com:sgothel/joglSven Gothel2019-03-271-8/+15
|\ \
| * \ Merge pull request #104 from gohai/bcm-fix-overscan-offsetSven Gothel2019-03-271-0/+7
| |\ \ | | | | | | | | Fix overlay/underlay position mismatch in X11UnderlayTracker (bug 1315)
| | * | Fix overlay/underlay position mismatch in X11UnderlayTracker with overscan ↵gohai2017-03-051-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | enabled With the overscan enabled by the Raspberry Pi firmware, which seems to be the default for some attached displays, the underlayWindow size will be e.g. 1888x1048 (retrieved from X11), whereas the overlayWindow size remains at 1920x1080 (retrieved from the Broadcom VC IV implementation). This causes the overlay window to be visually offset by a few pixels. Correct this by applying an offset when the two don't match. (Both displays are assumed to have the same center.)