summaryrefslogtreecommitdiffstats
path: root/platform/linuxbsd
Commit message (Collapse)AuthorAgeFilesLines
* Fix build with `vuklan=no` and `d3d12=no` after #91505.bruvzg2024-05-251-1/+2
|
* [DisplayServer] Add method to check if window transparency is supported and ↵bruvzg2024-05-232-0/+18
| | | | enabled.
* Merge pull request #92252 from poiati/fix-wayland-window-classRémi Verschelde2024-05-234-10/+12
|\ | | | | | | Properly set window class in Wayland
| * Properly set window class in WaylandPaulo Poiati2024-05-224-10/+12
| |
* | SCons: Convert platform `get_flags` to dictionaryThaddeus Crews2024-05-221-4/+4
|/
* Update pre-commit hooks configuration to use `ruff` instead of `black`Jakub Marcowski2024-05-211-3/+3
|
* [X11] Fallback to root window size, when Xinerama extension is available, ↵bruvzg2024-05-141-27/+40
| | | | but return zero screens.
* Set `execinfo=no` by default when compiling for Linux/*BSDHugo Locurcio2024-05-111-7/+3
| | | | | Alpine 3.17 and later no longer provide execinfo in its repositories, making compilation impossible unless you pass `execinfo=no`.
* DisplayServer: Avoid deadlocks while issuing input events and recursive main ↵Pedro J. Estébanez2024-05-081-0/+2
| | | | loop iterations
* Replace `find` with `contains/has` where applicableA Thousand Ships2024-05-082-5/+5
| | | | | | | * Replaces `find(...) != -1` with `contains` for `String` * Replaces `find(...) == -1` with `!contains` for `String` * Replaces `find(...) != -1` with `has` for containers * Replaces `find(...) == -1` with `!has` for containers
* Fix `builtin_embree=no` build linking the wrong version of EmbreeJakub Marcowski2024-05-081-1/+1
|
* Merge pull request #89574 from Riteo/scale-your-expectations-with-this-oneRémi Verschelde2024-05-071-1/+9
|\ | | | | | | Wayland: Workaround API limitation in screen/UI scale logic
| * Wayland: Workaround API limitation in screen/UI scale logicRiteo2024-05-071-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Mainly, this fixes auto UI scaling with _single-monitor_ fractional setups (see the comment in `display_server_wayland.cpp` for more info). This is the result of a bunch of current limitations, mainly the fact that the UI scale is static (it's probed at startup) and the fact that Wayland exposes fractional scales only at the window-level, by design. The `screen_get_scale` special case should help in 99% of cases, while the auto UI scale part will unfortunately only help with single-screen situations, as multi-screen fractional scaling requires dynamic UI scale changing.
* | Reduce and prevent unnecessary random-access to `List`A Thousand Ships2024-05-041-1/+1
|/ | | | | | | | | Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when accessing a single element) * Removed subscript operator, in favor of a more explicit `get` * Added conversion from `Iterator` to `ConstIterator` * Remade existing operations into other solutions when applicable
* Wayland: Add support for OpenGL ES driverRiteo2024-05-035-18/+161
| | | | | Everything was already there, we just had to wire it up in the display server.
* [Core] Add scalar versions of `Vector*` `min/max/clamp/snap(ped)`A Thousand Ships2024-05-022-2/+2
| | | | Convenience for a number of cases operating on single values
* Merge pull request #91247 from AThousandShips/callable_fixRémi Verschelde2024-04-291-1/+1
|\ | | | | | | Fix unsafe uses of `Callable.is_null()`
| * Fix unsafe uses of `Callable.is_null()`A Thousand Ships2024-04-271-1/+1
| | | | | | | | | | `Callable.is_null()` is not equivalent to `!Callable.is_valid()` and doesn't guarantee the call is valid.
* | Merge pull request #91220 from Repiteo/scons/colorize-warn-errorRémi Verschelde2024-04-291-27/+29
|\ \ | | | | | | | | | SCons: Colorize warnings/errors during generation
| * | SCons: Colorize warnings/errors during generationThaddeus Crews2024-04-281-27/+29
| |/
* / Wayland: Improve compositor compatibility by allowing older globalsRiteo2024-04-262-119/+136
|/ | | | | | | | | | | | | | | | | | Previously we pretty much hardcoded most of the globals we requested, causing compatibility issues with certain compositors like Weston, which support only some pretty old versions or miss some more advanced protocols. To put fuel on the fire, we also errored out when certain protocols weren't available, despite us being able to boot a game just fine (but obviously with a degraded featureset). The solution is to simply allow all the way from version 1 to the current latest, adding some compatibility code (such as for older `wl_output`s or newer `wl_pointer`s). While we're at it, this commit also fixes a few typos and naming inconsistencies I found.
* [DBus] Process file dialog callback in the main event loop instead of using ↵bruvzg2024-04-234-20/+54
| | | | deferred call.
* Polish interaction between windowing, input and renderingPedro J. Estébanez2024-04-106-37/+3
| | | | | - Adapt GL make/release API to the current architecture. - Fix DisplayServer being locked while dispatching input (prevent deadlocks).
* [.NET] Disable output embedding on macOS, move it to the advanced options on ↵bruvzg2024-04-091-6/+13
| | | | other platforms.
* Make sysctl calls on FreeBSDsambler2024-04-081-1/+25
| | | | | | The OS module get_unique_id and get_processor_name rely on linux files which don't exist on a standard FreeBSD install, make sysctl calls to get the required data.
* Merge pull request #89935 from bruvzg/dbus_conn_fixRémi Verschelde2024-04-042-90/+57
|\ | | | | | | [Linux/Portal] Fix incorrect DBus connection usage.
| * [Linux/Portal] Fix incorrect DBus connection usage.bruvzg2024-03-272-90/+57
| |
* | Merge pull request #89907 from bruvzg/nat_dlg_ftr_flagsRémi Verschelde2024-03-282-2/+6
|\ \ | | | | | | | | | [DisplayServer] Add separate feature flags for different native dialog types.
| * | [DisplayServer] Add separate feature flags for different native dialog types.bruvzg2024-03-262-2/+6
| |/
* | Merge pull request #89716 from theromis/masterRémi Verschelde2024-03-281-1/+1
|\ \ | |/ |/| | | [X11] Add more details to large icon size warning
| * Add icon source size to warning about "too large icon dimensions" to help ↵Roman Vasilyev2024-03-221-1/+1
| | | | | | | | faster find it
* | Merge pull request #87831 from Riteo/bitfield-xorRémi Verschelde2024-03-261-1/+1
|\ \ | | | | | | | | | Core: Implement a XOR operator for BitField
| * | Core: Implement a XOR operator for BitFieldRiteo2024-02-011-1/+1
| | |
* | | Merge pull request #89707 from AThousandShips/typo_fixRémi Verschelde2024-03-241-1/+1
|\ \ \ | | | | | | | | | | | | [Wayland] Fix typo in input code
| * | | [Wayland] Fix typo in input codeA Thousand Ships2024-03-201-1/+1
| | |/ | |/|
* | | Merge pull request #89229 from akien-mga/main-refactor-os-exit-codeRémi Verschelde2024-03-241-6/+7
|\ \ \ | | | | | | | | | | | | Refactor OS exit code to be `EXIT_SUCCESS` by default
| * | | Refactor OS exit code to be `EXIT_SUCCESS` by defaultRémi Verschelde2024-03-081-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - `Main::setup` early exits (failure or `--help`/`--version`) now consistently return `EXIT_FAILURE` or `EXIT_SUCCESS` on all platforms, instead of 255 on some and a Godot Error code on others. - `Main::start` now returns the exit code, simplifying the handling of early failures. - `Main::iteration` needs to explicit set the exit code in OS if it errors out. - Web and iOS now properly return `OS::get_exit_code()` instead of 0.
* | | | Use `Vector*` component-wise `min/max/clamp` functions where applicableA Thousand Ships2024-03-201-6/+3
| |/ / |/| |
* | | clang-tidy: Enforce `modernize-use-nullptr`Thaddeus Crews2024-03-122-5/+5
| | |
* | | Merge pull request #89393 from Repiteo/retire-subprocess_mainRémi Verschelde2024-03-111-13/+5
|\ \ \ | | | | | | | | | | | | SCons: Remove `run_in_subprocess` & `subprocess_main` dependencies
| * | | SCons: Remove `run_in_subprocess` dependencyThaddeus Crews2024-03-111-13/+5
| | | |
* | | | Merge pull request #86101 from GrammAcc/partial-fix-68305Rémi Verschelde2024-03-111-13/+0
|\ \ \ \ | |/ / / |/| | | | | | | [X11] Partial fix for Editor and Project Manager stealing focus on some window managers
| * | | [X11] Partial Fix Godot Editor and Project Manager steals focus on a window ↵Dalton Lang2024-02-051-13/+0
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | manager on Linux This is a workaround for the most critical portion of the WM focus bug described in #68305. On some specific X11 WM configurations, the editor's main window and any popups it creates will fight for focus, which causes a total system lockup due to mouse and keyboard input being stolen as well. Getting out of this infinite loop requires force restarting the system. It can be tested with the following shell script: ```bash !#/bin/sh godot4 & sleep 30 pkill -x godot4 ``` The workaround identified in #68305 is to remove the call to XSetInputFocus in the ConfigureNotify event handler, so I have removed the conditional block that calls this as well as the setup code above it since there is no need to allocate the memory for the variables if they won't be used in that call anymore. This is just a hack and is not a complete fix for #68305. Multiple developers are collaborating on a proper fix in the discussion in that issue, but time is a valuable resource that no one has enough of, so I am committing this workaround as a stop-gap to prevent the most critical problem while we work on a full solution for the underlying cause.
* | | SCons: Convert remaining `run_in_subprocess` to `env.Run`Thaddeus Crews2024-03-101-2/+1
| | |
* | | Merge pull request #89328 from Riteo/wayland-cursor-frame-optRémi Verschelde2024-03-091-7/+14
|\ \ \ | | | | | | | | | | | | Wayland: Setup next cursor frame callback only if animated
| * | | Wayland: Setup next cursor frame callback only if animatedRiteo2024-03-091-7/+14
| | |/ | |/| | | | | | | | | | | | | | | | | | | Before, the cursor kept updating for no good reason really. It's also a bit neater and it ever-so-slightly makes `WAYLAND_DEBUG` logs easier to read, although they're still spammed by the window's frame logic (which is needed).
* | | Merge pull request #89307 from alesliehughes/wayland_usageRémi Verschelde2024-03-091-4/+24
|\ \ \ | | | | | | | | | | | | Wayland: Stop possible Null pointer dereferences
| * | | wayland: Stop possible Null pointer dereferencesAlistair Leslie-Hughes2024-03-091-4/+24
| |/ /
* / / wayland: Stop unreachable warningAlistair Leslie-Hughes2024-03-091-2/+2
|/ /
* | Merge pull request #87452 from bruvzg/native_menuRémi Verschelde2024-03-064-0/+27
|\ \ | | | | | | | | | Move `global_menu_*` methods to a separate `NativeMenu` class.