summaryrefslogtreecommitdiffstats
path: root/platform/linuxbsd
Commit message (Collapse)AuthorAgeFilesLines
* Fix BadWindow X11 errors when a window is closed while processing strutsPouleyKetchoupp2021-11-041-2/+21
| | | | | | | | | A window can be closed on the server side while processing results from _NET_CLIENT_LIST, which causes BadWindow fatal errors by default in XGetWindowProperty. The only way to safely catch this case is to set an error handler to ignore BadWindow errors while these commands are processed.
* Add support for PowerPC familyDaniel Kolesa2021-11-011-2/+10
|
* Merge pull request #41565 from nekomatata/x11-usable-screen-sizeRémi Verschelde2021-11-011-11/+257
|\
| * Implemented screen_get_usable_rect for X11 Display ServerPouleyKetchoupp2021-10-291-11/+257
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Helps with fixing issues with scrolling popups not respecting screen decorations on the display server side. Reproduction steps for a simple use case: - Start the editor project list - Open the language selection popup Support for multi-screen: Handling decorations is supported in different ways depending on the information the window manager provides: - _GTK_WORKAREAS is used when available from the WM to get accurate rect for the different screens directly (available on Gnome). - Alternatively, strut information is used to calculate available space for a given desktop manually (XFCE, KDE). - As last resort _NET_WORKAREA is used. It provides one full rect for all screens, which doesn't handle decorations on the secondary screen in all cases.
* | Use OpenGL 3.3 core profile instead of compatibility profileClay John2021-10-317-44/+33
| | | | | | | | | | | | | | | | | | | | - Rename OpenGL to GLES3 in the source code per community feedback. - The renderer is still exposed as "OpenGL 3" to the user. - Hide renderer selection dropdown until OpenGL support is more mature. - The renderer can still be changed in the Project Settings or using the `--rendering-driver opengl` command line argument. - Remove commented out exporter code. - Remove some OpenGL/DisplayServer-related debugging prints.
* | Rename GLES2 driver to OpenGL to prepare for the upgrade to GLES3Hugo Locurcio2021-10-306-47/+53
| | | | | | | | | | - Use lowercase driver names for the `--rendering-driver` command line argument.
* | Add GLES2 2D renderer + Linux display managerlawnjelly2021-10-308-115/+374
|/ | | | | | | | | First implementation with Linux display manager. - Add single-threaded mode for EditorResourcePreview (needed for OpenGL). Co-authored-by: clayjohn <claynjohn@gmail.com> Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
* Merge pull request #42117 from nekomatata/x11-get-window-screenRémi Verschelde2021-10-282-26/+51
|\ | | | | Fix window_get_current_screen for X11 display server
| * Fix window_get_current_screen for X11 display serverPouleyKetchoupp2021-10-282-26/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | This method used to check which screen contains the top-left corner of the window (and default to the first screen in case none is found), which is not accurate in some cases. Now the area of overlap with each screen is calculated, so we can get the best candidate based on the window's position. This makes window_get_current_screen consistent with Windows platform, and fixes an issue where popups appear on the main screen when the main window is slightly moved outside of the desktop on the top or left.
* | clang-format: Various fixes to comments alignment from `clang-format` 13Rémi Verschelde2021-10-281-21/+1
| | | | | | | | All reviewed manually and occasionally rewritten to avoid bad auto formatting.
* | clang-format: Disable alignment of operands, too unreliableRémi Verschelde2021-10-281-19/+19
|/ | | | | | | | | Sets `AlignOperands` to `DontAlign`. `clang-format` developers seem to mostly care about space-based indentation and every other version of clang-format breaks the bad mismatch of tabs and spaces that it seems to use for operand alignment. So it's better without, so that it respects our two-tabs `ContinuationIndentWidth`.
* Fix input events random delay on X11PouleyKetchoupp2021-10-272-18/+29
| | | | | | | | | | | The new system based on a thread gathering events from the X11 server was causing delays in some scenarios where some events have just been missed at the time of processing and we're waiting for a whole frame to check them again. Solved by flushing again and checking for pending events at the beginning of the process loop, in addition to events already gathered on the event thread.
* Merge pull request #54045 from ConteZero/primary_clipboard_linux_fix_warningRémi Verschelde2021-10-231-0/+1
|\
| * Fix primary clipboard warningConteZero2021-10-231-0/+1
| |
* | Add support for the RISC-V architectureAaron Franke2021-10-221-0/+7
|/ | | | Supports RV64GC (RISC-V 64-bit with general-purpose and compressed-instruction extensions)
* Merge pull request #53702 from ConteZero/primary_clipboard_linuxRémi Verschelde2021-10-202-6/+47
|\
| * Added primary clipboard for LinuxConteZero2021-10-182-6/+47
| |
* | Merge pull request #53833 from akien-mga/remove-webm-supportRémi Verschelde2021-10-151-7/+0
|\ \
| * | Remove WebM support (and deps libvpx and opus)Rémi Verschelde2021-10-151-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've had many issues with WebM support and specifically the libvpx library over the years, mostly due to its poor integration in Godot's buildsystem, but without anyone really interested in improving this state. With the new GDExtensions in Godot 4.0, we intend to move video decoding to first-party extensions, and this would likely be done using something like libvlc to expose more codecs. Removing the `webm` module means we can remove libsimplewebm, libvpx and opus, which we were only used for that purpose. Both libvpx and opus were fairly complex pieces of the buildsystem, so this is a nice cleanup. This also removes the compile-time dependency on `yasm`. Fixes lots of compilation or non-working WebM issues which will be linked in the PR.
* | | SCons: Set `DEBUG_ENABLED` and `DEV_ENABLED` in SConstructRémi Verschelde2021-10-151-3/+0
|/ / | | | | | | | | They're the same for all platforms so they don't need to be repeated in all platform definitions.
* | SCons: Add `DEV_ENABLED` defines for `target=debug` buildsRémi Verschelde2021-10-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | This will allow adding developer checks which will be fully compiled out in user builds, unlike `DEBUG_ENABLED` which is included in debug tempates and the editor builds. This define is not used yet, but we'll soon add code that uses it, and change some existing `DEBUG_ENABLED` checks to be performed only in dev builds. Related to godotengine/godot-proposals#3371.
* | free dbus errors when inhibiting freedesktop screensaver (prevents small ↵Mark Riedesel2021-10-121-0/+4
|/ | | | memory leak)
* Merge pull request #51429 from omar-polo/fix-basenameRémi Verschelde2021-10-091-1/+4
|\
| * use .get_file() instead of basename(3)Omar Polo2021-10-081-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On OpenBSD the compiler complains that calling basename(3) would lose const qualifier. basename(3) is defined as char *basename(char *); and can, accorgindly to the POSIX.1, modify the passed string. This uses the .get_file() method. The check is necessary because file_name could be a directory, in which case .get_file() would return an empty string. The .get_base_dir().get_file() idiom is already used. The usage of get_file() and the check were suggested by theraot, thanks!
* | Merge pull request #52684 from Frixuu/masterRémi Verschelde2021-10-014-0/+32
|\ \
| * | Allow for mapping keycodes to current layoutFrixuu2021-09-214-0/+32
| | |
* | | Use range iterators for `Map`Lightning_A2021-09-301-49/+49
|/ /
* | Mention that rebooting is required after updating graphics driver on LinuxHugo Locurcio2021-09-151-1/+2
| |
* | Merge pull request #52282 from Calinou/scons-improve-linuxbsd-build-messagesRémi Verschelde2021-09-151-23/+21
|\ \ | | | | | | Improve messages when compiling for Linux/*BSD
| * | Improve messages when compiling for Linux/*BSDHugo Locurcio2021-08-311-23/+21
| | | | | | | | | | | | | | | | | | | | | - Don't display messages when enabling PulseAudio/ALSA/D-Bus/udev as these become noisy in incremental builds. - Improve warning and error messages to be more descriptive and consistent.
* | | Re-enable building position-independent executables on Linux/*BSDHugo Locurcio2021-09-151-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This provides better security at the cost of having misleading binary icons on some file managers. Now that recent Linux distributions no longer allow executing binaries by double-clicking them in a file manager (even if the binary is set to be executable), the usability cost of PIE is lowered. You have to use a terminal or install a `.desktop` file nowadays.
* | | Add logo attribution for Android, HTML5 and Linux platform iconsHugo Locurcio2021-09-111-0/+11
| | | | | | | | | | | | | | | - Tweak the Android platform logo to remove the Android wordmark, as it can't be used without explicit permission.
* | | Make platform feature tag names lowercaseHugo Locurcio2021-08-311-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Feature tag names are still case-sensitive, but this makes built-in feature tags more consistent. - `Windows` -> `windows` - `OSX` -> `osx` - `LinuxBSD` -> `linuxbsd` - `Android` -> `android` - `iOS` -> `ios` - `HTML5` -> `html5` - `JavaScript` -> `javascript` - `UWP` -> `uwp`
* | Merge pull request #47829 from Calinou/improve-crash-handler-displayHugo Locurcio2021-08-251-0/+10
|\ \ | | | | | | Improve crash handler message display
| * | Improve crash handler message displayHugo Locurcio2021-06-171-0/+10
| | | | | | | | | | | | | | | | | | - State the Godot version and full hash in the backtrace. - Add decoration around the crash backtrace, both to make it stand out from other messages and help the user figure out what they should copy.
* | | Add partial support for Android scoped storage.ne0fhyk2021-08-162-2/+2
| | | | | | | | | | | | | | | This is done by providing API access to app specific directories which don't have any limitations and allows us to bump the target sdk version to 30. In addition, we're also bumping the min sdk version to 19 as version 18 is no longer supported by Google Play Services and only account of 0.3% of Android devices.
* | | Add input buffering frameworkPedro J. Estébanez2021-08-131-1/+1
| | | | | | | | | | | | | | | | | | Input buffering is implicitly used by event accumulation, but this commit makes it more generic so it can be enabled for other uses. For desktop OSs it's currently not feasible given main and UI threads are the same).
* | | Improve input event accumulationPedro J. Estébanez2021-08-131-10/+10
| | | | | | | | | | | | | | | | | | - API has been simplified: all events now go through `parse_input_event()`. Whether they are accumulated or not depends on the `use_accumulated_input` flag. - Event accumulation is now thread-safe (it was not needed so far, but it prepares the ground for the following changes). - Touch drag events now support accumulation.
* | | Upgrade Vulkan memory allocatorPedro J. Estébanez2021-08-131-1/+1
| | |
* | | Use "volk" instead of statically linked Vulkan loader.bruvzg2021-08-122-2/+6
| | |
* | | Use Key enum instead of plain integersAaron Franke2021-08-103-19/+19
| | |
* | | Fix various typos with codespellluz paz2021-07-252-2/+2
| | | | | | | | | | | | Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
* | | Move `alert` function from `DisplayServer` to `OS`.bruvzg2021-07-224-70/+70
| | |
* | | Fix popup closing immediately after showing on some Linux WMsPouleyKetchoupp2021-07-211-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | When a popup is going to be closed, switch focus to the parent only if the popup is still being focused. Fixes some cases with specific WMs where due to the order of events, a new popup could be immediately unfocused because a previously opened and closed popup is switching focus to the parent.
* | | Modernize Display server to use override keywordHendrik Brucker2021-07-161-71/+71
| | |
* | | Fix for ambiguous variant error during build on Debian 10(Buster) using clang v7joe2021-07-131-1/+1
| | |
* | | Merge pull request #48622 from Geometror/reimplement-disableable-vsyncHugo Locurcio2021-07-104-15/+34
|\ \ \
| * | | Restructure and reimplement vsync optionsHendrik Brucker2021-07-064-15/+34
| | | | | | | | | | | | | | | | | | | | -Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX -Removed the V-Sync via Compositor option
* | | | Fix linux use after freelikeich2021-07-081-1/+2
|/ / / | | | | | | | | | Fixes #50032
* | | Add "Keep screen on" feature to `DisplayServerX11`Niklas Higi2021-06-206-0/+227
| | |