Commit Graph

158 Commits

Author SHA1 Message Date
Emmanouil Papadeas 2ba6066d5d Minor fix in DisplayServer.xml to include Linux & Windows in FEATURE_NATIVE_DIALOG 2024-02-03 21:36:02 +02:00
bruvzg edb21e0573
[Wayland] Add support for native file dialogs. 2024-01-31 14:13:19 +02:00
Riteo 7e0f7d3abd Add Wayland support
Not everything is yet implemented, either for Godot or personal
limitations (I don't have all hardware in the world). A brief list of
the most important issues follows:

- Single-window only: the `DisplayServer` API doesn't expose enough
information for properly creating XDG shell windows.

- Very dumb rendering loop: this is very complicated, just know that
the low consumption mode is forced to 2000 Hz and some clever hacks are
in place to overcome a specific Wayland limitation. This will be
improved to the extent possible both downstream and upstream.

- Features to implement yet: IME, touch input, native file dialog,
drawing tablet (commented out due to a refactor), screen recording.

- Mouse passthrough can't be implement through a poly API, we need a
rect-based one.

- The cursor doesn't yet support fractional scaling.

- Auto scale is rounded up when using fractional scaling as we don't
have a per-window scale query API (basically we need
`DisplayServer::window_get_scale`).

- Building with `x11=no wayland=yes opengl=yes openxr=yes` fails.

This also adds a new project property and editor setting for selecting the
default DisplayServer to start, to allow this backend to start first in
exported projects (X11 is still the default for now). The editor setting
always overrides the project setting.

Special thanks to Drew Devault, toger5, Sebastian Krzyszkowiak, Leandro
Benedet Garcia, Subhransu, Yury Zhuravlev and Mara Huldra.
2024-01-30 16:44:47 +01:00
bruvzg a8f521bcad
[Native File Dialog] Add support for adding custom options to the dialogs.
Add support for adding custom options (checkboxes and optionboxes) to the dialogs (both native and built-in).
2024-01-24 15:00:31 +02:00
Micky 61bdbdd9ee Replace some "uncommon" words in class reference 2024-01-15 18:51:52 +01:00
bruvzg e01b22a69d
[Windows] Make Windows Ink tablet API default, add dummy driver to disable tablet input. 2023-12-18 22:36:54 +02:00
bruvzg 0d44b50520
[macOS] Add default Window and Help menus, allow special menu customization. 2023-12-13 23:20:05 +02:00
Rémi Verschelde 354c622aa7
doc: Clarify that `DisplayServer.window_set_*_callback` aren't supported on Window nodes 2023-11-09 17:23:38 +01:00
Rémi Verschelde 1e544505be
Merge pull request #82691 from YuriSizov/rst-validate-with-exceptions
Validate `code` tags for class and member references
2023-10-04 15:42:42 +02:00
Rémi Verschelde d5db0e5032
Merge pull request #81218 from bruvzg/_temp_fs
[Native File Dialogs] Improve filter list handling, add selected filter to the callback.
2023-10-04 15:34:16 +02:00
bruvzg d1aaa914f3
[macOS] Add `about_to_open` and `popup_hide` callback for the global menus, move part of logic to the PopupMenu to allow live menu modification. 2023-10-04 09:49:51 +03:00
bruvzg 43e4708dff
[Native File Dialogs] Improve filter list handling, add selected filter to the callback. 2023-10-03 19:26:16 +03:00
Rémi Verschelde 0358abbeba
Merge pull request #82179 from bruvzg/mode_docs
[Docs] Update and sync Window and DisplayServer window mode descriptions.
2023-10-03 17:22:05 +02:00
Yuri Sizov cc0eebd9d8 Validate `code` tags for class and member references
This commit also adds means to manually disable warnings
in `code` tags where it's a false positive with the new
`skip-lint` attribute.

Warnings are now enabled on CI to prevent future errors.
2023-10-03 15:48:31 +02:00
bruvzg 72e2e47059
[DisplayServer] Add method to estimate window title bar size. 2023-10-03 16:13:52 +03:00
bruvzg c8df5e7291
[Docs] Update and sync Window and DisplayServer window mode descriptions. 2023-10-02 23:47:32 +03:00
Zae 428eb1309a Support dark mode on Android and iOS. 2023-09-26 11:00:04 +08:00
bruvzg 1887a9df19
[macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching.
Co-authored-by: Riteo <riteo@posteo.net>
2023-09-21 14:21:00 +03:00
Rémi Verschelde 5c43e4c1ef
Fix various typos with codespell
Using 2.2.6.dev180+ge3a2cfbd.
2023-09-12 08:54:18 +02:00
Rémi Verschelde 8de6405288
UWP: Remove platform port, needs to be redone from scratch for 4.x
The UWP platform port was never ported to the Godot 4.0+ API,
and it's now accumulating bitrot as it doesn't compile, and thus
we no longer propagate platform changes in it.

So we finally remove to acknowledge this state. There's still some
interest in reviving the UWP port eventually, especially as support
for Direct3D 12 will soon be merged, but when that happens it will
be easiest to redo it from scratch.
2023-09-07 15:01:59 +02:00
bruvzg 6cc314e0fa
[Linux/Freedesktop] Implement native file selection dialog support. 2023-08-17 10:56:16 +03:00
Yuri Sizov 0c2399d6ec Merge pull request #63826 from deakcor/dev_clipboard
Add `clipboard_has/get_image` methods to DisplayServer
2023-07-27 15:22:16 +02:00
Yuri Sizov 818d90f1e5 Merge pull request #79353 from sepTN/fix-docs-for-consistency
Fix documentation for consistency
2023-07-21 17:54:26 +02:00
bruvzg d3ca91ad6a [Windows] Implement native file selection dialog support. 2023-07-18 17:23:58 +03:00
Vincent D c13e3a9fb0 add clipboard get image methods for windows and macos
Co-Authored-By: RedworkDE <10944644+RedworkDE@users.noreply.github.com>
Co-Authored-By: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-07-17 23:47:27 +02:00
bruvzg 4790da7900
[macOS] Implement optional native file selection dialog support for sandboxed apps. 2023-07-12 22:36:24 +03:00
Yuri Sizov ff689003a5 Merge pull request #77993 from bruvzg/key_lbl_from_p
Implement DisplayServer.keyboard_get_label_from_physical method.
2023-07-12 21:02:37 +02:00
Septian 377cbaba43 Fix documentation for consistency 2023-07-12 05:33:49 +07:00
Rémi Verschelde 81064cc239
Doctool: Remove version attribute from XML header
We don't use that info for anything, and it generates unnecessary diffs
every time we bump the minor version (and CI failures if we forget to
sync some files from opt-in modules (mono, text_server_fb).
2023-07-06 10:08:21 +02:00
Rémi Verschelde 346f1ab86b
Bump version to 4.2-dev
Keep on waitin'
2023-07-05 22:07:03 +02:00
Ninni Pipping 9159208ed1 Ensure `RID`, `Callable`, and `Signal` are stored as strings
Prevents parser errors in `.tscn` and `.tres` files where the assignment
would otherwise be empty.
2023-06-22 17:01:08 +02:00
Rémi Verschelde 014b395ef3
Merge pull request #78262 from bruvzg/ds_window_focus
[DisplayServer] Add method to check if native window is focused.
2023-06-16 10:19:33 +02:00
bruvzg 28db3c7158 [DisplayServer] Add method to check if native window is focused. 2023-06-16 10:27:52 +03:00
Danil Alexeev eb391d3302
Display `BitField[Enum]` in docs to distinguish from `Enum` 2023-06-15 17:23:02 +03:00
bruvzg 974a7a89c6
[iOS] Fix orientation change in runtime. 2023-06-12 14:13:53 +03:00
bruvzg 08e8ff371d
Implement keyboard_get_label_from_physical method. 2023-06-08 10:13:31 +03:00
Yuri Sizov 989dedddf9
Merge pull request #77577 from YeldhamDev/improve_window_docs
Improve `Window` documentation
2023-05-29 17:34:24 +02:00
Yuri Sizov 7505fbd939
Merge pull request #76702 from MewPurPur/improve-docs-top-sections-GUI
Overhaul the top sections of the class reference (GUI classes)
2023-05-29 17:13:38 +02:00
Michael Alexsander f7fced5e00
Improve `Window` documentation 2023-05-29 11:18:31 -03:00
Ninni Pipping 17fb77223c Minor grammar fixes to documentation 2023-05-28 18:27:56 +02:00
VolTer 151a4ba6a5 Overhaul the top sections of the class reference (GUI classes) 2023-05-28 14:24:54 +02:00
bruvzg 5b9984b5a2
Add `audio/general/text_to_speech` project setting to enable/disable TTS. 2023-05-18 20:16:03 +03:00
Rémi Verschelde 265c70a369
Merge pull request #75142 from bruvzg/scr
[DisplayServer] Implement screen_get_image method for LinuxBSD/X11, macOS and Windows.
2023-05-16 10:48:16 +02:00
Max Hilbrunner 921d231ad6
Merge pull request #76664 from Xenoparrot/simple-typos 2023-05-06 15:41:55 +02:00
kobewi 33b9be27d3 Some clarifications on screen-space coordinates 2023-05-03 20:15:49 +02:00
UltraBIF 8106d33d0f Fixed various typos across the docs 2023-05-02 18:24:32 -04:00
bruvzg 520a8d8ed2
Add project manager / editor initial screen settings, implement DisplayServer.get_keyboard_focus_screen method. 2023-04-19 08:54:53 +03:00
Haoyu Qiu 766807506c Fix various typos in the classref 2023-04-18 19:53:47 +08:00
Evgeniy Vasilyev 5ba98e59f0
Fixed typo in DisplayServer.ScreenOrientation docs 2023-04-16 19:37:39 +03:00
bruvzg ab94024ce1
[DisplayServer] Implement screen_get_image method for LinuxBSD/X11, macOS and Windows. 2023-03-20 14:58:21 +02:00