Commit Graph

81249 Commits

Author SHA1 Message Date
Vitaly Provodin
c19470a13d Update README.md 2024-09-25 02:03:09 +02:00
Vitaly Provodin
2cae27d380 Update README.md 2024-09-25 02:03:09 +02:00
Maxim Kartashev
36f1edb3e7 JBR-7651 runtime/cds/appcds/complexURI/ComplexURITest.java throws java.nio.file.AccessDeniedException 2024-09-25 02:03:09 +02:00
Nikita Gubarkov
d6131f2961 JBR-7572 Bring back VKBuffer functions 2024-09-25 02:03:09 +02:00
Nikita Gubarkov
4b73fffa2c JBR-7644 Vulkan: Move barrier state tracking from surface into image 2024-09-25 02:03:08 +02:00
Nikita Gubarkov
b4d53f08d8 JBR-7572 Vulkan: Implement vertex buffer pool
Track and reuse vertex buffers, no need to allocate and bind a new buffer on each draw.
2024-09-25 02:03:08 +02:00
Vitaly Provodin
fb07e7f751 Update README.md 2024-09-25 02:03:08 +02:00
Nikita Gubarkov
4bf84632d8 JBR-7556 Check negative glyphID in HBShaper 2024-09-25 02:03:08 +02:00
Maxim Kartashev
4b9c245907 JBR-7576 Cannot make CDS dump due to whitespaces in paths 2024-09-25 02:03:08 +02:00
bourgesl
683be68268 JBR-7616: improved MTLRenderQueue exception handling 2024-09-25 02:03:08 +02:00
Maxim Kartashev
271a4a8e20 JBR-7600 Provide ability to add messages to fatal error log
Use JNU_LOG_EVENT(env, msg, ...) to save a message in the internal
JVM ring buffer that gets printed out to the Events section
of the fatal error log if JVM crashed.
2024-09-25 02:03:08 +02:00
Nikita Provotorov
27bb7177a9 JBR-5673: Wayland: support touch scrolling.
- Adding information to WLPointerEvent about wl_pointer::axis* events along the X axis;
- Introducing 'WLComponentPeer#convertPointerEventToMWEParameters' - a routine for converting WLPointerEvent parameters to parameters required for MouseWheelEvent s;
- Handling both X and Y axes within the WLPointerEvent dispatching routine.

(cherry picked from commit 6afbc34d4b)
2024-09-25 02:03:08 +02:00
Nikita Provotorov
422cd76a15 JBR-7459: Wayland: touchpad scrolling is too sensitive.
- Remaking the mapping of wl_pointer::axis events values to MouseWheelEvent rotations to eliminate the touchpad scrolling behavior "the more slowly the fingers move, the more pixels are scrolled";
- Accumulating the fraction parts of wl_pointer::axis events values to improve the accuracy of touchpad scrolling;
- Distinguishing between wheel scrolling and touchpad scrolling to fine-tune MouseWheelEvent parameters for each of these cases.

(cherry picked from commit 874d5698bc)
2024-09-25 02:03:08 +02:00
Vitaly Provodin
d6a2ac2d4e Update README.md 2024-09-25 02:03:08 +02:00
Sergei Tachenov
2af54ae0bf JBR-7586 Fix title click ungrab when an active user component is clicked
Swing requires that clicking frame decorations should cause the window
to be ungrabbed. However, if a custom title is used, and that title contains
user-provided components, then clicking such components should not
cause the window to be ungrabbed, otherwise a menu located in a custom
title behaves incorrectly.

Fix by using the same logic as for the native actions, such as moving the window.
If the native actions are allowed, then ungrabbing is allowed as well.
Otherwise, do not ungrab, let the component behave like it's located in the client area.

The fix is supplemented with a new regression test "test/jdk/jb/javax/swing/CustomTitleBar/JMenuClickToCloseTest.java".
2024-09-25 02:03:08 +02:00
Nikita Tsarev
399cdb91ac JBR-7594 Check for LWCToolkit in JBR TextInput API 2024-09-25 02:03:08 +02:00
Sergei Tachenov
c64b9a3e8f JBR-7484 Update the cursor on mouse entered/exited
AppKit resets the cursor on native mouse entered/exited events. Depending on the order of events, it may end up setting the wrong cursor. So update it forcibly on such events.
2024-09-25 02:03:08 +02:00
Sergei Tachenov
50d3563f1f JBR-7481 Work around mouse entered/exited bug
To fix missing mouse entered/exited events when
using rounded corners, we keep track of mouse moved events. When a mouse moved event is detected, and the current peer under the cursor belongs to a different window, we send fake mouse entered/exit events to the old and new windows. We also filter late mouse exited events.

The workaround is enabled by default with the VM option "awt.mac.enableMouseEnteredExitedWorkaround" to disable it in case something breaks.

About the test:
Use the robot to find the points when the mouse
entered event is sent to the popup when the mouse
enters through a rounded corner, and the similar
point for entering the outer window when exiting
through such a corner.

Once the points are found, move the mouse back
and forth to that point, but not beyond.
The correct behavior is that when the mouse
enters the popup, a mouse exited event is sent
to the outer frame and vice versa.
Therefore, every mouse entered/exited event
should be received exactly once.

Use reflection to set the rounded corners,
as JBR API isn't available in tests.
2024-09-25 02:03:08 +02:00
Vitaly Provodin
eb2baa1d52 Update README.md 2024-09-25 02:03:07 +02:00
Alexey Ushakov
4d0095ce0c JBR-7588 Metal: Reuse MTLContext for all GCs of the same GPU
Implemented reference counting for shared MTLContext objects. Supported multiple display links per MTLContext. Also, works for macOS version < 10.13
2024-09-25 02:03:07 +02:00
Nikita Gubarkov
9b4d3fc0c6 JBR-5973 Vulkan: Fix validation errors (#452)
- Added proper synchronization and image layout transitions.
- Refactored VKRenderer to hold per-device rendering context. Isolated surface rendering contexts.
- Implemented reusing of command buffers and semaphores
- Fixed surface resize, made surface initialization more robust.
- Added on-demand pipeline creation for actual surface formats.
- Added missing destruction logic.
- Added macros for easy checking of return codes, logging with source code location.
- Moved implementation details out of headers where possible. Stripped dead code.
- Implemented consistent OOM strategy from dynamic arrays and ring buffers.
2024-09-25 02:03:07 +02:00
Maxim Kartashev
d68bfb40d6 Wayland: Fixed build errors after rebasing on JDK24 2024-09-25 02:03:07 +02:00
Maxim Kartashev
dff332de9d JBR-5615 added missing part for WLToolkit 2024-09-25 02:03:07 +02:00
Dominik Matta
6d7d01e838 JBR-6763 Wayland: application crashes when popup closed
Certain Wayland compositors (wlroots) invalidate xdg_surface after window with popup loses focus. Subsequent attempts to
commit the popup window fail with protocol error "xdg_surface has never been configured".

Handle popup_done event by hiding the popup window. Also emit WINDOW_CLOSING event as otherwise focus remains on the popup parent.

Co-authored-by: Maxim Kartashёv <maxim@kartashev.spb.ru>
2024-09-25 02:03:07 +02:00
Maxim Kartashev
ca32de3116 JBR-6468 Wayland: java/awt/datatransfer/MimeFormatsTest.java fails by timeout
Excluded the test from jdk_awt_wayland as it can't be made to work
under Wayland.
2024-09-25 02:03:07 +02:00
Maxim Kartashev
92e5175f50 Added proper copyright headers 2024-09-25 02:03:07 +02:00
Nikita Gubarkov
d8c5985734 Fix WindowMoveService on Wayland 2024-09-25 02:03:07 +02:00
Nikita Gubarkov
55cb14e9da JBR-7570 Implemented ring buffer. Added lazy implicit initialization for dynamic arrays. (#451) 2024-09-25 02:03:07 +02:00
Nikita Gubarkov
8ad0208f72 JBR-7568 Vulkan: Refactor VKLogicalDevice into VKDevice (#449)
* Renamed VKLogicalDevice to VKDevice for conformance and convenience.
* Refactored device->device to device->handle for clarity.
2024-09-25 02:03:07 +02:00
Nikita Gubarkov
ca0a3f5dd7 JBR-7569 Removed VMA-Hpp (#450) 2024-09-25 02:03:07 +02:00
Dmitrii Morskii
055803fb38 JBR-7126 add more possible names for cursor arrow icon 2024-09-25 02:03:07 +02:00
Maxim Kartashёv
c14a77be4d JBR-7016 IDEA 2024.2 Wayland: UI Crash when selecting Code and pressing Alt+Enter 2024-09-25 02:03:06 +02:00
Maxim Kartashёv
a3dabd7368 JBR-7493 Wayland: can't start in maximized state on WSL 2024-09-25 02:03:06 +02:00
Maxim Kartashёv
8709138805 JBR-7516 Wayland: DamageList_AddList: Assertion `list != add' failed 2024-09-25 02:03:06 +02:00
Maxim Kartashёv
24340371db JBR-7501 Wayland: SurfaceData.flush() method is mis-used 2024-09-25 02:03:06 +02:00
Nikita Tsarev
c01316a6fd JBR-7478: Fix wrong timestamps on KEY_TYPED events [WLToolkit] 2024-09-25 02:03:06 +02:00
lbourges
e0bede470e JBR-7461: Implement VKTexturePool for the linux vulkan pipeline:
- based on common AccelTexturePool
 - new VKTexturePool instance in VKLogicalDevice
 - fixed SIGSEGV in VKImage dispose
 - store device in TPI
 - indentation fixes
 - merged with latest changes for JBR-7460
 - use (ATexturePoolLock_init)(void)
 - fixed logs in lock implementations + fixed indentation
 - fixed MTLTexturePool to pre-processor conditions (not runtime) on USE_ACCEL_TEXTURE_POOL
2024-09-25 02:03:06 +02:00
Maxim Kartashёv
04e7610e44 JBR-7313 Wayland: error: xdg_surface buffer does not match the configured maximized state 2024-09-25 02:03:06 +02:00
Maxim Kartashev
2831f0bc70 JBR-7397 Wayland: make certain interfaces optional 2024-09-25 02:03:06 +02:00
Maxim Kartashev
8705d5fc29 JBR-7397 CLion 2024.2-EAP/Wayland crashes on startup with Miriway
Check if all non-optional interfaces are supported before actually
starting to run
2024-09-25 02:03:06 +02:00
Alexey Ushakov
c8e12b22de JBR-7452 Vulkan: Reuse VkRenderPass for multiple renderers (#428)
Moved shared VkRenderPass to the logical device
2024-09-25 02:03:06 +02:00
Alexey Ushakov
d97c97f68b JBR-7420 Vulkan: Implement DRAW_PARALLELOGRAM primitive for flat color rendering (#426)
Refactored rendering code. Provided common implementation for fill and draw operations.
2024-09-25 02:03:06 +02:00
Nikita Gubarkov
ad73019289 JBR-7419 Refactor Vulkan code
- Separate instance and device-specific function tables
- Avoid using device from global context when possible
- Set up debug logger
2024-09-25 02:03:06 +02:00
Maxim Kartashёv
a78b8d1964 JBR-7390 Wayland: need better headless exception message 2024-09-25 02:03:06 +02:00
Maxim Kartashёv
4c62294b81 JBR-7259 Find Usages popup can't be resized under Wayland
Popup's positioner size has to be in sync with popup's buffer size
2024-09-25 02:03:06 +02:00
Maxim Kartashёv
d7e1ddde4c JBR-7254 Impossible to copy/paste files in Project tree 2024-09-25 02:03:05 +02:00
Maxim Kartashev
0f06780355 JBR-7290 Wayland: window permanently looses focus after invoking Go To Line dialog 2024-09-25 02:03:05 +02:00
Alexey Ushakov
f704ccfda5 JBR-7308 Vulkan: Build failure in vulkan enabled builds
Added missing header (jni_util.h)
2024-09-25 02:03:05 +02:00
Alexey Ushakov
ecdeda4474 JBR-7305 Vulkan: Implement FILL_SPANS primitive for flat color rendering
Implemented flat color shape rendering
2024-09-25 02:03:05 +02:00
Nikita Gubarkov
91e094574e JBR-7307 Add stub for VKInstance.initNative with disabled Vulkan. 2024-09-25 02:03:05 +02:00