-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Implement a Wayland DisplayServer #57025
Closed
Closed
Changes from 250 commits
Commits
Show all changes
591 commits
Select commit
Hold shift + click to select a range
85c4c64
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 1f3e0c5
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 3744c36
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo f051ea1
Port the whole new Unicode handling
Riteo e3185fc
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 2d1c168
Embed Wayland headers, remove dependency from CI
Riteo fe44420
Hopefully fix python formatting
Riteo ceb7c53
Remove the `dynwrappers` formatter exception
Riteo 9059f97
Rollback accidental useless change
Riteo 7e9d28e
CI: Add libwayland-bin dependency
Riteo 65184fd
Fix Wayland protocol wrapper postprocessing.
Riteo 02f0450
Tweak the protocol wrapper postprocessor
Riteo 26d7a65
Add a wayland-scanner check for now
Riteo eb4cd76
Embed also wayland-client.h and wayland-client-protocol.h
Riteo f848923
Add the embedded wayland headers to CPPPATH
Riteo 7c5047c
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo c8aefde
Implement basic tablet support.
Riteo 380b606
Merge remote-tracking branch 'origin' into wayland
Riteo af68cce
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 19ad033
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 077b3fc
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 108d0de
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 32a8cbd
Fix OpenGL OpenXR with so-wrapper-less Wayland only builds
Riteo 5fc53fd
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 68377c7
Embed libdecor libraries
Riteo d7f578a
Add GLAD support for EGL PRIME detection
Riteo 695e78c
Normalize tilt and add some comments
Riteo ac618fb
Associate the alpha of custom cursors
Riteo 7653bb3
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 7082faa
Make double click actually check for the last click distance
Riteo 5c6eeec
Check for double clicks separately from one another
Riteo f9f9c4b
Fix CI
Riteo bba52dc
Implement custom app ids
Riteo 61672fd
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 11915eb
Switch to reverse-dns app ids
Riteo 06ec619
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 5f1bcb6
Port "Fix custom cursor using atlas texture" to DisplayServerWayland
Riteo 9715e74
Fix typo in alpha premultiplication
Riteo 3dc575c
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo fb65c04
Add a comment about how GDCLASS is unneeded.
Riteo 82cc1f2
Wayland: Add support for VRAM-compressed custom mouse cursor images
Riteo 217df75
XKBcommon: Add some missing keycodes/scancodes.
Riteo 6419391
Make codespell happy
Riteo b9047f1
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo c63afbe
Fix shadowing in the EGL PRIME detection code
Riteo 8572096
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo e1191df
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 53b5091
Begin working on HiDPI support
Riteo 733068c
Begin refactoring into a separate `WaylandThread` class
Riteo e009580
Begin using wl_proxy user data more, add dynamic output scale handling
Riteo 54d8ced
Move wl_output event handling into WaylandThread
Riteo 92212c4
Move wl_display to WaylandThread
Riteo 1deac2a
Move output data handling to WaylandThread
Riteo f0019b6
Fix crash on failed load
Riteo 65d5904
Fix yet another init crash
Riteo 82e7eb3
My brain stopped working for a bit
Riteo 9c8ecf5
Destroy stuff in the thread only if initialized
Riteo cb60c2f
Add window ids into WaylandThread's API
Riteo 6411eb2
Move most of window stuff inside WaylandThread, flesh its API more
Riteo 34d0fff
Rename `WaylandMessage` to `Message`
Riteo ec3c483
Move WaylandThread in its own header and hack a lot of stuff into it
Riteo 116b448
Refactor a bit the godot-side window data
Riteo 57c3286
Improve lots of stuff, break even more
Riteo b473432
Bring back key repeating
Riteo bc9cc11
Fix some stuff, reimplement mouse modes and warping
Riteo 4ac8ffc
Comment out window resizing
Riteo 49dca2a
Restore automatic hint resizing and add it to libdecor's branch
Riteo c059181
Bring back keyboard layout handling and make it actually work lol
Riteo 365b5b4
Restore and refactor clipboard support in WaylandThread
Riteo f3b5a5d
Get rid of WaylandState \o/
Riteo f95d21e
Port custom cursors to WaylandThread
Riteo 247ddfd
Kinda port window mode handling
Riteo 6a18fec
Fix window scale at startup, implement screen_get_scale
Riteo 9e6e1f8
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo 84c7725
Merge branch 'wayland-thread-refactor' into wayland
Riteo 94c8e62
Wayland: [DisplayServer] Add method to check if native window is focu…
Riteo c690d9a
Fix shadowing warnings
Riteo ba2fff3
Uncomment window attention
Riteo 34a4bc3
Tidy up some includes, move some of them in the implementations
Riteo 934e683
Make codespell happy
Riteo 1765f18
Implement auto scale
Riteo b075313
Fix wrong listener data being set for new primary selection devices
Riteo e2a1f23
Merge remote-tracking branch 'origin/master' into wayland
Riteo afa3872
Fix build
Riteo c0c8ad3
Merge commit '013e8e3afb982d4b230f0039b6dc248b48794ab9' into wayland
Riteo 5dd2093
Manually handle frame events
Riteo 74dbcc3
Move Wayland error handling in WaylandThread, improve event loop
Riteo 056bb61
Make vsync emulation code messages verbose
Riteo 126a6e6
Fix weird libdecor startup crash on SSD compositors
Riteo 25b5702
Implement animated cursors
Riteo 8a6aba5
Implement cursor HiDPI
Riteo b563f72
Fix pasting into some clients such as firefox
Riteo 221513a
Lock the mutex also for the unconditional dispatch
Riteo 5bdcbe4
wl_pointer: check surface ownership
Riteo a5cfc11
update wayland-protocols to 1.32
Riteo 1d89ecb
Implement fractional scaling
Riteo dc3a3bb
Fix spelling issue
Riteo 41e6a06
Add more logging in window output handling
Riteo c10c26c
Merge commit '549fcce5f8f7beace3e5c90e9bbe4335d4fd1476' into wayland
Riteo a1d4eac
Label outputs as our own
Riteo b61f166
Merge commit 'e3e2528ba7f6e85ac167d687dd6312b35f558591' of https://gi…
Riteo acbeae6
Avoid error spam with missing cursors
Riteo 3793926
Use doubles for frac scale and add note regarding godot->wayland
Riteo 79263c4
Make data handling type agnostic
Riteo 9042008
Merge commit '901e090e567bd425b84bf18fe773a3f0f641c42c' into wayland
Riteo be62fd3
Merge commit '1887a9df19ea689bfb69f55454f0598bd09ab95f' into wayland
Riteo 0076742
Merge branch 'master' of https://github.com/godotengine/godot into wa…
Riteo e3c497a
Remove VSync Editor override from EGLManager
Riteo 7d5ceb2
Fix segfault when setting hint while window is unfocused
Riteo 5e0ef34
Remove pre-ANGLE EGL driver include snippet
Riteo 9a44ebe
Style nitpicks
Riteo 99dbd77
Improve warp_mouse comment about it being hacky
Riteo 376b4a6
Handle null cursors properly in cursor update routine
Riteo ad62a58
Data device: track offered media types and select the best one
Riteo d6f12b4
Remove useless frame signal reset
Riteo 0fbda91
Merge commit '57a6813bb8bc2417ddef1058d422a91f0c9f753c' of https://gi…
Riteo 4562602
Fix spelling issue
Riteo 4e18629
Clear the custom cursor on destruction and on cursor_set_shape
Riteo 2c66b83
Fix cursor visibility setting
Riteo 92b2987
Calculate mouse delta properly
Riteo 91ec250
Implement clipboard_get_image
Riteo 3eea778
Prioritize the most common formats in clipboard_get_image
Riteo b1b0675
Unify DnD offer reading logic
Riteo cdb0a43
Initial work on DRI_PRIME detection
Riteo 8e6834e
Fix copyright headers
Riteo 5a99ad6
Make PRIME detection use the actual GPU index instead of maxing to 1
Riteo 702b8b5
Begin adding some Wayland info in the documentation
Riteo 568d5b7
Merge commit 'b1371806ad3907c009458ea939bd4b810f9deb21' of https://gi…
Riteo cfd9c5b
Use vararg call in DisplayServerWayland
Riteo 9669ab8
Fix vulkan-only build
leandro-benedet-garcia 844f1da
Properly load the default cursor theme
Riteo 286cd18
Fix includes for unwrapped builds
Riteo 75aa752
Improve clipboard handling and fix local copy/paste
Riteo 96ddc68
Merge commit 'e8d57afaeccf0d9f9726746f49936eb93aa0039b' into wayland
Riteo 706f808
Simplify buffer scale calculation and unify window rescaling
Riteo e82933e
Merge commit '4c96e9676b66d0cc9a25022b019b78f4c20ddc60' of https://gi…
Riteo 8eb1ea2
Merge commit '64150060f89677eaf11229813ae6c5cf8a873802' of https://gi…
Riteo 58c177d
Check for actual window size/scale changes before rescaling
Riteo 31c9fa1
Emit WINDOW_EVENT_DPI_CHANGE on scale change
Riteo a489c9a
Merge commit 'ad72de508363ca8d10c6b148be44a02cdf12be13' of https://gi…
Riteo e502685
fix vformat which break event propagation and break cursor size
stalkerg fc8a1d3
fix doubled enable hover mode
stalkerg e71b341
Merge pull request #3 from stalkerg/cursor-and-input-bugfix
Riteo 3d49d4e
Fix build
Riteo 8e60678
Remove weird X11 quirk handling
Riteo fdff1de
Check for proxy before checking ownership
Riteo 01e2890
scaling: resize on preferred scale when possible
Riteo d8e8062
Merge commit '1ba920fada9efc8c4476ded50fe673b8db541366' of https://gi…
Riteo 5083af1
Fix libdecor-less fallback when the decoration manager is missing
Riteo b1936cf
Make all methods starting with an undescore actually private
Riteo 0bf1295
Bump version to 4.2.1-rc
akien-mga 185fc1c
Merge tag '4.2-stable' of https://github.com/godotengine/godot into w…
Riteo ab7b662
Fix SubViewport physics picking for 4.2
Sauermann 013c119
Fix crash when using incompatible versions of Godot Jolt
mihe 17888fb
Merge pull request #85779 from mihe/godot-jolt-crash
YuriSizov 289472d
Merge pull request #85665 from Sauermann/fix-4.2-subviewport-physics-…
akien-mga 8a38518
Remove unnecessary uses of `CharString`'s `ptr` and `ptrw`
Riteo 32128e0
HiDPI: track all screens
Riteo 0c97e92
Defer buffer scale setting to avoid invalid buffer combinations
Riteo 32d7f03
Remove useless window commits
Riteo efe3793
Comment out tablet support
Riteo c8b0bc6
Improve comments behind frame commit magic thing
Riteo 8d9d58b
Automatically ensure correct normals in Compatibility renderer
BlueCube3310 54c799f
Improve and clarify texture filtering documentation
Calinou a813176
Fix buffer updates going to the wrong cmd buffer if barriers were 0
darksylinc 0478c7c
Enable scrolling of output with UI scale changes
RoyBerube ffe9358
Fix UV editor not using texture transform
aXu-AP 5c709cf
Fix missing NavigationObstacle property updates in constructor
smix8 ece0c0c
Fix missing NavigationAgent property updates in constructor
smix8 dfcfc79
Fix missing NavigationRegion property updates in constructor
smix8 fc7cc46
Fix missing NavigationLink property updates in constructor
smix8 bd2cad5
Comment the shader template light function by default
reduz dbb86ed
Fix generating terrain icon with certain image formats.
SaracenOne 2cbe02a
Add shadows_disabled macro in Compatibility renderer
jsjtxietian b768561
Fix bad parameter of rendering_method crashes Godot
jsjtxietian e4aec48
VideoPlayer: Fix reloading translation remapped stream
akien-mga c913a8d
Fix memory leak in 'NavigationServer3D' involving static obstacles
Scony 7b9bf3d
Fix imported track flag on sliced animations.
SaracenOne 90f7b2b
Fix NavigationRegion2D transform update
smix8 779414c
Fix memory leak on error paths in tinyexr loader
alesliehughes 1d82ae2
Remove unused grip touch action from default OpenXR action map
BastiaanOlij f84ee53
Only allow MeshInstance3D-based nodes in particles emission shape nod…
Calinou 7fb0ec0
Only allow MeshInstance3D-inherited nodes in MultiMesh Populate Surfa…
Calinou 4ddcfb5
Fix issue with 3D scene drag and drop preview node
EelisOtsamo b642489
Fixed reading WAV files with odd chunk sizes.
bs-mwoerner cff941f
Fix typo in BaseMaterial3D conversion from 3.x SpatialMaterial
Calinou 2786f0e
Prevent a crash when calling AnimationMixer::restore when an invalid …
jsjtxietian cc9bb3b
Do not consume (eat) mouse messages with no_focus Window's (Godot Pop…
Maran23 3ba731f
[RTL] Fix CharFX character offset calculation.
bruvzg d2d7261
Set ReflectionProbe frame before mapping id in mobile renderer
clayjohn 871d00c
Fix AnimationPlayer seeking for Discrete keys
TokageItLab 1fcf635
Limit window size updates on title change.
bruvzg 492b0c3
Fix Tween loop initial value
KoBeWi 5181638
Fix memory corruption and assert failures in convex decomposition
Malcolmnixon 6cfe17c
[Core] Prevent infinite recursion when printing errors
AThousandShips b5e7b2c
[Core] Fix crash when hashing empty `CharString`
AThousandShips 77383e6
Keep scene tiles even if the TileMap is invisible
groud 21a510b
Restored Control layout properties you undo a parenting of a Control …
TheSofox dc221c5
use venv if detected when building godot.sln
brno32 a207e53
Fix order of operations for macos template check
brno32 4564a85
Correctly check scripts that must inherit `EditorPlugin`
YuriSizov dc5d477
Fix the Web platform team's codeowners link
YuriSizov d93fcf8
Fix theme application in various editor dialogs
YuriSizov bca878f
Use vertex input mask for creating vertex arrays
clayjohn 836e018
Add a descriptive error message when creating a mesh surface from arrays
aaronfranke bd7d37b
Fix errors on file rename or move in the Filesystem Dock
Jordyfel 6e4a7ee
Vulkan: Fix incorrect access to the buffers on Android
Alex2782 bcf09f1
Remove exp hint of a few properties
MewPurPur 476bc36
Allow dragging editable children
timothyqiu 2b3a8f0
Update cached singletons when reloading GDScripts
DmitriySalnikov 3dfb82f
Fix IME key event being erased in macOS
HolySkyMin 1d5f6ed
Improve documentation for `CameraAttributesPhysical.exposure_shutter_…
addmix b959ab9
Fix property groups overriding real properties
paulloz 0ba32ac
Filter groups and categories from autocompletion
HolonProduction 6f8cc1b
Improve autocompletion with get_node
HolonProduction 5db5f0b
Set language encoding flag when using ZIPPacker
timothyqiu d25e28d
Inspector: Fix clearing array/dictionary element with `<Object#null>`
dalexeev 511b4f8
Make sure `Window`'s title is respected before we compute the size
YuriSizov 24a383e
X11: Send IME update notification deferred
HolonProduction 65677df
[iOS] Use mdfind to check if Xcode is installed in one-click deploy c…
bruvzg 455e8f0
[macOS] Switch ANGLE backend to ANGLE over OpenGL, switch default com…
bruvzg 2167526
Fix SnapGrid is almost invisble in light theme
jsjtxietian 351bede
Fix UV editor not showing polygon correctly
aXu-AP 83d3ccc
fix documentation for `icon_and_font_color` editor setting
BNTFryingPan d29aaed
Limit window size updates on title translation change.
bruvzg 4cadc50
Do not reload resources and send notification if locale is not changed.
bruvzg 7931c04
Fix size and visuals of the InputEventConfigurationDialog
YuriSizov c219ffe
Fix invalid Python escape sequences
emklasson 075a5a1
Fix missing heading in translated online class reference
timothyqiu 9d22668
Merge pull request #85784 from YuriSizov/4.2-cherrypicks
akien-mga daeb1c7
i18n: Sync translations with Weblate
akien-mga ae0e07b
Force highest known buffer scale and update it only if necessary
Riteo 90f75c9
Remove dumb comment and make a variable name more consistent
Riteo c9f473b
Fix typo
Riteo 9787915
Make `_show_window` actually private
Riteo 6aeb2a6
Fix broken lazy scale logic
Riteo 6e043b8
Fixes TileMap occluders
groud 4cce0d9
Ensure that 2D meshes use a proper input mask
clayjohn fc15ffe
GLES3: Skip batches with zero instance count while rendering
HolySkyMin ed55f9d
Update the changelog for 4.2.1
YuriSizov 67038ec
Merge pull request #86026 from YuriSizov/4.2-cherrypicks
YuriSizov 5dd7623
Set what were default values for some emscripten linkflags
adamscott 1dee633
i18n: Sync translations with Weblate
akien-mga b09f793
Bump version to 4.2.1-stable
akien-mga 27c4989
Merge tag '4.2.1-stable' of https://github.com/godotengine/godot into…
Riteo 9b19435
I completely forgot 4.2.1 was in a different branch
Riteo 091c4a2
Unlock the wl thread before flushing inputs
Riteo f992a23
Remove unused XKB key mappers
Riteo b25b842
Add attribution for wayland and wayland-protocols
Riteo 868058a
Fix typo in COPYRIGHT.txt
Riteo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't it now be better to just call the platform "Linux"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@adamscott not sure, as the display server is a pretty important information, although now it's probably not as important as when we had only X11.
If we had to rename it I'd go for "Linux/BSD", as it's actually also supposed to support BSD (and it probably unofficially supports other *nixes)