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

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)
Commit 516d3d57eb54f6fe95d842d29a2929e024ee8f34 by Sven Gothel
WindowImpl: Reorder protected methods, groupd callbacks used for native callbacks ..
The file was modified src/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 modified src/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/windows/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/x11/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/MonitorDeviceImpl.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/awt/ScreenDriver.java (diff)
The file was modified src/newt/classes/com/jogamp/newt/Screen.java (diff)
The file was modified src/newt/classes/jogamp/newt/ScreenImpl.java (diff)
The file was modified make/stub_includes/win32/window-lib.c (diff)
The file was modified src/newt/classes/jogamp/newt/driver/kd/ScreenDriver.java (diff)
The file was modified src/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java (diff)
The file was modified src/newt/classes/com/jogamp/newt/MonitorDevice.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/bcm/egl/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java (diff)
The file was modified make/stub_includes/win32/gluegen/windows.h (diff)
The file was modified src/newt/classes/jogamp/newt/driver/android/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/intel/gdl/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/macosx/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/MonitorModeProps.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/bcm/vc/iv/ScreenDriver.java (diff)
The file was modified src/newt/native/WindowsWindow.c (diff)
The file was modified make/config/nativewindow/win32-lib.cfg (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00aNEWT.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 modified make/build-nativewindow.xml (diff)
The file was addedmake/stub_includes/win32/WindowsSHC.h (diff)
The file was addedmake/stub_includes/win32/WindowsUser.h (diff)
The file was addedsrc/nativewindow/native/win32/WindowsUser.c (diff)
The file was addedsrc/nativewindow/native/win32/WindowsSHC.c (diff)
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 modified src/nativewindow/classes/com/jogamp/nativewindow/util/RectangleImmutable.java (diff)
The file was modified src/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 modified src/newt/classes/com/jogamp/newt/Window.java (diff)
The file was modified src/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java (diff)
The file was modified src/nativewindow/classes/com/jogamp/nativewindow/NativeWindow.java (diff)
The file was modified src/newt/classes/com/jogamp/newt/javafx/NewtCanvasJFX.java (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NEWT.java (diff)
The file was modified src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java (diff)
The file was modified src/nativewindow/classes/jogamp/nativewindow/WrappedWindow.java (diff)
The file was modified src/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modified src/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java (diff)
The file was modified src/newt/classes/com/jogamp/newt/opengl/GLWindow.java (diff)
The file was modified src/nativewindow/classes/jogamp/nativewindow/WrappedSurface.java (diff)
Commit 50f07e601a9de0ccad0cdb393898dc01d147cadb by Sven Gothel
Update Eclipse settings (add openjfx jar)
The file was modified .classpath (diff)
The file was modified .project (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 modified src/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java (diff)
The file was modified src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff)
The file was modified src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
The file was modified src/newt/classes/com/jogamp/newt/Screen.java (diff)
The file was modified src/newt/classes/jogamp/newt/awt/NewtFactoryAWT.java (diff)
The file was modified src/newt/classes/com/jogamp/newt/Display.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 modified src/newt/classes/jogamp/newt/driver/awt/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modified src/newt/native/bcm_vc_iv.c (diff)
The file was modified src/newt/native/KDWindow.c (diff)
The file was modified src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/bcm/egl/WindowDriver.java (diff)
The file was modified src/nativewindow/classes/jogamp/nativewindow/SurfaceScaleUtils.java (diff)
The file was modified src/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modified src/newt/native/drm_gbm.c (diff)
The file was modified src/newt/classes/jogamp/newt/OffscreenWindow.java (diff)
The file was modified src/newt/native/X11Display.c (diff)
The file was modified src/newt/classes/jogamp/newt/driver/android/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff)
The file was modified src/newt/native/X11Event.c (diff)
The file was modified src/newt/native/IOSNewtUIWindow.m (diff)
The file was modified src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
The file was modified src/newt/native/WindowsWindow.c (diff)
The file was modified src/newt/classes/jogamp/newt/driver/intel/gdl/WindowDriver.java (diff)
The file was modified src/newt/native/XCBEvent.c (diff)
The file was modified src/newt/native/MacNewtNSWindow.m (diff)
The file was modified src/newt/classes/jogamp/newt/driver/kd/WindowDriver.java (diff)
The file was modified src/newt/native/X11Window.c (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 modified src/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 modified src/newt/classes/jogamp/newt/driver/awt/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/android/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/bcm/egl/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/intel/gdl/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/kd/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/x11/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/ios/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 modified src/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 modified src/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 modified src/test/com/jogamp/opengl/test/junit/newt/mm/TestScreenMode00aNEWT.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/awt/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/bcm/egl/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/intel/gdl/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/macosx/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/windows/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/ScreenImpl.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/kd/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch10NEWT.java (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/newt/TestGearsNEWT.java (diff)
The file was modified make/scripts/tests-x64-dbg.bat (diff)
The file was modified src/newt/classes/jogamp/newt/driver/x11/ScreenDriver.java (diff)
The file was modified make/scripts/tests-win.bat (diff)
The file was modified src/newt/classes/jogamp/newt/driver/android/ScreenDriver.java (diff)
The file was modified make/scripts/tests.sh (diff)
The file was modified src/newt/classes/jogamp/newt/driver/bcm/vc/iv/ScreenDriver.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/x11/WindowDriver.java (diff)
The file was modified src/nativewindow/classes/jogamp/nativewindow/SurfaceScaleUtils.java (diff)
The file was modified src/newt/classes/jogamp/newt/MonitorModeProps.java (diff)
The file was modified src/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff)