Skip to content
The Jenkins Controller is preparing for shutdown. No new builds can be started.
Success

Changes

Summary

  1. WindowImpl: Reorder protected methods, groupd callbacks used for native callbacks .. (details)
  2. GDIUtil: Add GetMonitor*() variants incl. PixelScale; NEWT MonitorDevice: Add 64-bit nativeHandle (Windows HMONITOR), add PixelScale for Windows (details)
  3. GDIUtil: Add GetMonitor*() variants incl. PixelScale (Part-2, adding missing native header and code files) (details)
  4. Nativewindow Rectangle*: Add contains, scale*(float..) and make union(List<Rectangle*>) public; Fix union/intersection 'off-by-1' for pos2. (details)
  5. NativeWindow: Add getBounds() (moved from NEWT Window) and getSurfaceBounds() (details)
  6. Update Eclipse settings (add openjfx jar) (details)
  7. Fix NewtFactoryAWT: screen.getMonitor(..) -> screen.getMonitorById(..); Misc left-over changes .. (details)
  8. NEWT Soft-PixelScale (p1): WindowImpl: Separate window and pixel units for size and position via atomic-replacable int arrays (details)
  9. NEWT Soft-PixelScale (p2): MonitorDevice: Add getOrientationTo(..) to determine the orientation of this monitor to the other incl. the 'move_diff' (details)
  10. NEWT Soft-PixelScale (p3): WindowImpl.createNativeImpl(..): Add boolean positionModified[] return value, allowing to not wait for the previous custom position (details)
  11. NEWT Soft-PixelScale (p4): WindowImpl: Change SetSizeAction to optionally set a custom position additionally to size (details)
  12. NEWT Soft-PixelScale (p5): Add WindowImpl.applySoftPixelScale(..) for general usage (details)
  13. NEWT Soft-PixelScale (p6): Implement Soft-PixelScale for X11 and Windows ... (working state) (details)
  14. Fix comment for WindowImpl.insets: value is in window units (details)
  15. NEWT Regression: Move superSizeChangedOffThread() back to iOS/MacOS WindowDriver, used to call the super class method. (details)
  16. NEWT WindowImpl: Bring back DEBUG output on positionChanged(..) (details)
Commit 516d3d57eb54f6fe95d842d29a2929e024ee8f34 by Sven Gothel
WindowImpl: Reorder protected methods, groupd callbacks used for native callbacks ..
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
Commit e96aeb6e9acd2b1435f5fad244a1488e74a3a6d6 by Sven Gothel
GDIUtil: Add GetMonitor*() variants incl. PixelScale; NEWT MonitorDevice: Add 64-bit nativeHandle (Windows HMONITOR), add PixelScale for Windows
The file was modifiedsrc/newt/classes/jogamp/newt/driver/awt/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/windows/ScreenDriver.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00aNEWT.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/egl/ScreenDriver.java (diff)
The file was modifiedmake/stub_includes/win32/window-lib.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/MonitorDevice.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/android/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/MonitorModeProps.java (diff)
The file was modifiedmake/stub_includes/win32/gluegen/windows.h (diff)
The file was modifiedsrc/newt/native/WindowsWindow.c (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/kd/ScreenDriver.java (diff)
The file was modifiedmake/config/nativewindow/win32-lib.cfg (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/MonitorDeviceImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/ScreenImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/intel/gdl/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Screen.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/vc/iv/ScreenDriver.java (diff)
Commit bebb7e9b078f6eaed478143ffbdeeece5ca0e037 by Sven Gothel
GDIUtil: Add GetMonitor*() variants incl. PixelScale (Part-2, adding missing native header and code files)

Part-1 in commit e96aeb6e9acd2b1435f5fad244a1488e74a3a6d6
The file was addedmake/stub_includes/win32/WindowsUser.h
The file was addedmake/stub_includes/win32/WindowsSHC.h
The file was addedsrc/nativewindow/native/win32/WindowsSHC.c
The file was modifiedmake/build-nativewindow.xml (diff)
The file was addedsrc/nativewindow/native/win32/WindowsUser.c
Commit 54760cd667365277c9c2473350bdc56ba5398348 by Sven Gothel
Nativewindow Rectangle*: Add contains, scale*(float..) and make union(List<Rectangle*>) public; Fix union/intersection 'off-by-1' for pos2.
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/util/RectangleImmutable.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/util/Rectangle.java (diff)
Commit ed4cf029c22c3380e04971011a51ef2c666aa6d9 by Sven Gothel
NativeWindow: Add getBounds() (moved from NEWT Window) and getSurfaceBounds()
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/NativeWindow.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Window.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/opengl/GLWindow.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/WrappedSurface.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/javafx/NewtCanvasJFX.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NEWT.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/WrappedWindow.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java (diff)
Commit 50f07e601a9de0ccad0cdb393898dc01d147cadb by Sven Gothel
Update Eclipse settings (add openjfx jar)
The file was modified.project (diff)
The file was modified.classpath (diff)
Commit ef206c881a9fd462e52241fac506bee5441902ad by Sven Gothel
Fix NewtFactoryAWT: screen.getMonitor(..) -> screen.getMonitorById(..); Misc left-over changes ..

GDIUtil: Remove uncommented GetMonitorPixelScale(..) point variant
JAWTUtil: Clarify Java version comment w/ spacing
NEWT Display.getThreadName(): Return 'Thread[0x<hash-value>, <name>]'
NEWT Screen: Add getFullyEnteredMonitor(..)
NewtCanvasAWT: @SuppressWarnings for determineIfApplet() and use FQN within method
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Screen.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Display.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/awt/NewtFactoryAWT.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java (diff)
Commit cfc35549810d3a0fb5eeb866c9450417e48cd8a1 by Sven Gothel
NEWT Soft-PixelScale (p1): WindowImpl: Separate window and pixel units for size and position via atomic-replacable int arrays

NEWT's Soft-PixelScale supports software pixel-scale by multiplying the underlying surface pixel-size with the scale-factor
and dividing the window position and size by same scale-factor.

Hence the window position and size space is kept virtually steady at virtually assumed DPI 96 at higher actual screen DPI
and the surface size is adjusted.

+++

This window- and pixel-unit separation also includes all callbacks for the native driver implementations,
hence the changes native code - allowing to determine whether window- or pixel-units were given.
The file was modifiedsrc/newt/native/X11Event.c (diff)
The file was modifiedsrc/newt/native/IOSNewtUIWindow.m (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/awt/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/drm_gbm.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/XCBEvent.c (diff)
The file was modifiedsrc/newt/native/KDWindow.c (diff)
The file was modifiedsrc/newt/native/WindowsWindow.c (diff)
The file was modifiedsrc/newt/native/bcm_vc_iv.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/MacNewtNSWindow.m (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/OffscreenWindow.java (diff)
The file was modifiedsrc/newt/native/X11Display.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/android/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/kd/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/X11Window.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/intel/gdl/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/SurfaceScaleUtils.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/egl/WindowDriver.java (diff)
Commit 43dc472c4797f34e4079028a5eb04bc420c11c2a by Sven Gothel
NEWT Soft-PixelScale (p2): MonitorDevice: Add getOrientationTo(..) to determine the orientation of this monitor to the other incl. the 'move_diff'

move_diff int[2] to store the move delta for each axis from this-monitor to the other

This will be utilized when a NEWT window moved across monitors to signal the move_diff,
which helps to properly adjust the new position.

Tested: All 4 monitor crossings right_of, left_of, above and below.
TODO: Test and support a 'diagonal' move, i.e. move_diff on both axis.
The file was modifiedsrc/newt/classes/com/jogamp/newt/MonitorDevice.java (diff)
Commit 1d4c077b29a69fd13526dfd25d00ee87c0d5b3fe by Sven Gothel
NEWT Soft-PixelScale (p3): WindowImpl.createNativeImpl(..): Add boolean positionModified[] return value, allowing to not wait for the previous custom position

This is required if createNativeImpl(..) modifies the target position, i.e. due to soft-pixel-scale.
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/android/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/awt/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/egl/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/kd/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/intel/gdl/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/WindowDriver.java (diff)
Commit ab6d84721e2a15550289e14b751e06701bd68726 by Sven Gothel
NEWT Soft-PixelScale (p4): WindowImpl: Change SetSizeAction to optionally set a custom position additionally to size

This added functionality is desired when adjusting the window position and size when changing the soft-pixel-scale
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
Commit 6eb13066996e94b2fe40bf64e74ea43d8f4e9171 by Sven Gothel
NEWT Soft-PixelScale (p5): Add WindowImpl.applySoftPixelScale(..) for general usage

See MonitorDevice.getOrientationTo(MonitorDevice, int[]) to setup the move_diff
as added in commit 43dc472c4797f34e4079028a5eb04bc420c11c2a
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
Commit 97b79ad351e48e7d3c6f9c95bacdf4f9d5d158ef by Sven Gothel
NEWT Soft-PixelScale (p6): Implement Soft-PixelScale for X11 and Windows ... (working state)

Both:
- Using Soft-PixelScale mode, i.e. converting all given window-units to pixel-units for native GDI/X11 ops
- Using scaled pixel-sized surface
- Adjusting NEWT's Monitor's window-unit viewport value to pixel-scale

For X11:
- Using global scale factor from environment variable, either: "GDK_SCALE", "QT_SCALE_FACTOR" or "SOFT_SCALE".
  The latter is for testing only.
  See https://wiki.archlinux.org/title/HiDPI

For Windows:
- Using actual monitor's pixel-scale via native SHC API (Shellscaling API, shcore.dll)

Misc:
- SurfaceScaleUtils.getGlobalPixelScaleEnv() reads a float value from given env names, first come, first serve
- MonitorModeProps.streamInMonitorDevice(..): Add `invscale_wuviewport` argument to scale wuvieport for soft-pixel-scale
- TestGearsNEWT: Enhance GL2 demo to be suitable for manual tests, this since my Windows KVM machine doesn't support ES2
- TestGLContextDrawableSwitch10NEWT: Add a few more test constraints .. working

Tested:
- Manually on a Windows virtual machine (KVM) using
  - 2 virtualized 'Video QXL' cards and
  - and 'remote-viewer' to see the 2 monitors
    since `Virtual Machine Manager` build-in doesn't support
    - remote-viewer spice://localhost:5917

- Manually on a Linux machine w/ SOFT_SCALE

- Both, X11 and Windows
  - Place window on each monitor
  - Move window across monitors w/ pixel-scale change (or not)

- TODO: Test and fix utilization with AWT, i.e. NewtCanvasAWT
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch10NEWT.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/vc/iv/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/kd/ScreenDriver.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00aNEWT.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff)
The file was modifiedmake/scripts/tests-x64-dbg.bat (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/ScreenImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/egl/ScreenDriver.java (diff)
The file was modifiedmake/scripts/tests-win.bat (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/MonitorModeProps.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/SurfaceScaleUtils.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/newt/TestGearsNEWT.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/awt/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/windows/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/ScreenDriver.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/android/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/intel/gdl/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/WindowDriver.java (diff)
Commit 9b1b1df6afe32be3ad514c3e3c7b31c940225e2c by Sven Gothel
Fix comment for WindowImpl.insets: value is in window units
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
Commit d6b4c7dd3546b8de876a9ddcbf5f1f56be8ef281 by Sven Gothel
NEWT Regression: Move superSizeChangedOffThread() back to iOS/MacOS WindowDriver, used to call the super class method.

Regression of commit cfc35549810d3a0fb5eeb866c9450417e48cd8a1

Note to myself: You can't enforce a 'this' method call overridden with a virtual from a subclass.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
Commit 3462aa70de7d4a6fdd59f0cb90b6563d68731c61 by Sven Gothel
NEWT WindowImpl: Bring back DEBUG output on positionChanged(..)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)