summaryrefslogtreecommitdiff
path: root/platform
AgeCommit message (Collapse)Author
2022-10-04Merge pull request #66804 from akien-mga/core-remove-NO_SAFE_CASTRémi Verschelde
Remove unsupported `NO_SAFE_CAST`/`-fno-rtti` from Android build
2022-10-03Remove NO_THREADS fallback code, Godot 4 requires thread supportRémi Verschelde
This also removes `OS::can_use_threads` from the public API since it's always true.
2022-10-03Remove unsupported `NO_SAFE_CAST`/`-fno-rtti` from Android buildRémi Verschelde
Android was the last platform to still attempt to disable RTTI (for binary size), but both the Android editor and now the ICU library used by templates need RTTI. There could still be the possibility to support this for non-ICU template builds (i.e. without the TextServerAdvanced module), but since this isn't one of the build configurations we test regularly it's pretty risky to keep this option only for that specific use case. And our code is already littered with `dynamic_cast`s which weren't guarded with `!defined(NO_SAFE_CAST)`.
2022-10-01Fix inconsistent window state on X11.Matthew Munro (mam552)
Fixes #66413. DisplayServerX11 tracks some internal state about whether the window is fullscreen, minimized, maximized or none. This commit queries the display server when the window changes, so that this internal state can be correctly updated.
2022-09-30Merge pull request #64784 from yedpodtrzitko/yed/ci-add-mypyRémi Verschelde
ci: add Python static analysis check via mypy
2022-09-30Fix typos with codespellRémi Verschelde
Using codespell 2.3-dev from current git. And fix typo in `methods.py` for `vsproj=yes` option (still won't work though).
2022-09-30ci: add Python static analysis check via mypyJiri Suchan
2022-09-30Merge pull request #66242 from akien-mga/scons-unify-tools-targetRémi Verschelde
2022-09-28Merge pull request #66548 from akien-mga/msvc-warnings-c4701-c4703Rémi Verschelde
Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable used
2022-09-28Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable usedRémi Verschelde
2022-09-28Fix MSVC warning C4706: assignment within conditional expressionRémi Verschelde
Part of #66537.
2022-09-28[Windows] Ignore excessive wintab mouse move events.bruvzg
2022-09-26SCons: Unify tools/target build type configurationRémi Verschelde
Implements https://github.com/godotengine/godot-proposals/issues/3371. New `target` presets ==================== The `tools` option is removed and `target` changes to use three new presets, which match the builds users are familiar with. These targets control the default optimization level and enable editor-specific and debugging code: - `editor`: Replaces `tools=yes target=release_debug`. * Defines: `TOOLS_ENABLED`, `DEBUG_ENABLED`, `-O2`/`/O2` - `template_debug`: Replaces `tools=no target=release_debug`. * Defines: `DEBUG_ENABLED`, `-O2`/`/O2` - `template_release`: Replaces `tools=no target=release`. * Defines: `-O3`/`/O2` New `dev_build` option ====================== The previous `target=debug` is now replaced by a separate `dev_build=yes` option, which can be used in combination with either of the three targets, and changes the following: - `dev_build`: Defines `DEV_ENABLED`, disables optimization (`-O0`/`/0d`), enables generating debug symbols, does not define `NDEBUG` so `assert()` works in thirdparty libraries, adds a `.dev` suffix to the binary name. Note: Unlike previously, `dev_build` defaults to off so that users who compile Godot from source get an optimized and small build by default. Engine contributors should now set `dev_build=yes` in their build scripts or IDE configuration manually. Changed binary names ==================== The name of generated binaries and object files are changed too, to follow this format: `godot.<platform>.<target>[.dev][.double].<arch>[.<extra_suffix>][.<ext>]` For example: - `godot.linuxbsd.editor.dev.arm64` - `godot.windows.template_release.double.x86_64.mono.exe` Be sure to update your links/scripts/IDE config accordingly. More flexible `optimize` and `debug_symbols` options ==================================================== The optimization level and whether to generate debug symbols can be further specified with the `optimize` and `debug_symbols` options. So the default values listed above for the various `target` and `dev_build` combinations are indicative and can be replaced when compiling, e.g.: `scons p=linuxbsd target=template_debug dev_build=yes optimize=debug` will make a "debug" export template with dev-only code enabled, `-Og` optimization level for GCC/Clang, and debug symbols. Perfect for debugging complex crashes at runtime in an exported project.
2022-09-26Style: Cleanup header guards for consistencyRémi Verschelde
Fix file names for {Static,Lightmap}RaycasterEmbree.
2022-09-25Merge pull request #66377 from bruvzg/macos_menu_cb_deferredRémi Verschelde
[macOS] Process menu callback after event processing step to avoid event queue corruption.
2022-09-24Merge pull request #66295 from bruvzg/win_fix_wm_char_keysymRémi Verschelde
[Windows] Fix WM_CHAR processing code using Unicode char instead of Virtual key.
2022-09-24[macOS] Process menu callback after event processing step to avoid event ↵bruvzg
queue corruption.
2022-09-23SCons: Cleanup `DEBUG`, `_DEBUG` and `NDEBUG` definesRémi Verschelde
- `_DEBUG` is MSVC specific so it didn't make much sense to define for Android and iOS builds. - iOS was the only platform to define `DEBUG`. We don't use it anywhere outside thirdparty code, which we usually don't intend to debug, so it seems better to be consistent with other platforms. - Consistently define `NDEBUG` to disable assert behavior in both `release` and `release_debug` targets. This used to be set for `release` for all platforms, and `release_debug` for Android and iOS only. - Due to the above, I removed the only use we made of `assert()` in Godot code, which was only implemented for Unix anyway, should have been `DEV_ENABLED`, and is in PoolAllocator which we don't actually use. - The denoise and recast modules keep defining `NDEBUG` even for the `debug` target as we don't want OIDN and Embree asserting all over the place.
2022-09-23SCons: Remove redundant `-fomit-frame-pointer` and `-ftree-vectorize`Rémi Verschelde
- `-fomit-frame-pointer` is included automatically by both GCC and Clang in `-O1` and above. - `-ftree-vectorize` is included automatically by GCC in `-O2` and beyond, and seems always enabled by Clang. Closes #66296. See that issue for a detailed investigation.
2022-09-23[Windows] Fix WM_CHAR processing code using Unicode char instead of Virtual key.bruvzg
2022-09-22[macOS extend-to-title] Add scene/project name to the editor title, fix ↵bruvzg
incorrect window button position/order when system primary language is RTL.
2022-09-21Merge pull request #65816 from bruvzg/proj_settings_missing_flagsRémi Verschelde
Add missing initial window flags and window mode to the project settings.
2022-09-21[macOS] Improve "extended to title" transition to / from fullscreen.bruvzg
2022-09-20[macOS] Add an option to align window buttons in "extend to title" mode.bruvzg
2022-09-20Merge pull request #65745 from akien-mga/scons-production-lto-earlierRémi Verschelde
Refactor handling of `production` flag and per-platform LTO defaults
2022-09-20Merge pull request #65541 from clayjohn/renderer-settingRémi Verschelde
Split rendering driver project setting into renderer_name and rendering_driver
2022-09-19Split rendering driver project setting into renderer_name and ↵clayjohn
rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer).
2022-09-19SCons: Refactor handling of `production` flag and per-platform LTO defaultsRémi Verschelde
Fixup to #63288. See #65583 for the bug report. Co-authored-by: Cyberrebell <chainsaw75@web.de>
2022-09-19Add missing initial window flags and window mode to the project settings.bruvzg
2022-09-19Replace File/Directory with FileAccess/DirAccesskobewi
2022-09-18Merge pull request #65975 from Faless/web/4.x_features_detectionRémi Verschelde
[Web] Add feature detection helpers to JS Engine class.
2022-09-18Merge pull request #65331 from derammo/derammo_natvis_3Rémi Verschelde
Add more data structures to Natvis for Visual Studio
2022-09-17[Web] Add feature detection helpers to JS Engine class.Fabio Alessandrelli
2022-09-16Add get_distribution_name() and get_version() to OSMJacred
supports: LinuxBSD, Windows, macOS, iOS, Android, UWP Co-authored-by: bruvzg
2022-09-16Merge pull request #65496 from MinusKube/popup-capture-mouse-bugRémi Verschelde
Fix MOUSE_MODE_CAPTURED not working correctly with popups
2022-09-15[macOS] Remove tabs for "Quit" menu item.bruvzg
2022-09-15[macOS] Fix redraw lag at the edge of the resizing window.bruvzg
2022-09-14Merge pull request #65133 from bruvzg/win_cursorRémi Verschelde
[Windows] Simplify cursor handling and add support for fully transparent cursors.
2022-09-14[macOS, 4.0] Fix unresponsive redraw during live resizing.bruvzg
2022-09-13Disable menus and functionality that are not relevant on the Android Editor portFredia Huya-Kouadio
2022-09-13Check for ios_simulator when building for x86_64Ted Spikes
2022-09-13Merge pull request #65509 from gotnospirit/master-os-get_datetimeRémi Verschelde
get_datetime_* functions can return wrong values
2022-09-13Merge pull request #65262 from bruvzg/win10_dmRémi Verschelde
Disable dark mode title bar on Windows 10.
2022-09-13Merge pull request #65682 from m4gr3d/update_editor_versioning_mainRémi Verschelde
2022-09-13Merge pull request #65704 from akien-mga/web-editor-fix-some-errorsRémi Verschelde
Fix some errors affecting the Web editor
2022-09-12Fix multiwindow support in GLES3 for X11, Windows, and MacOS.clayjohn
Instead of updating all viewports, then blitting all viewports to the backbuffer, then swapping all buffers, we run through all viewports and render, blit, and swap backbuffer before going to the next viewport.
2022-09-12Exclude small screens from the set of supported devices.Fredia Huya-Kouadio
2022-09-12Update the versioning logic for the Godot Android EditorFredia Huya-Kouadio
This is necessary to separate subsequent uploads to the Google Play store as each upload needs to increment the version code.
2022-09-12Fix some errors affecting the Web editorRémi Verschelde
- Don't warn about minimized/maximized modes not being available. - Blender and FBX export both depend on running thirdparty applications, which can't be done (easily at least) for Web and Android editors. - Editor theme complained about not being able to retrieve texture data for an icon. It was only used once so instead of flipping at runtime, let's just add a flipped icon. Part of #65702.
2022-09-11[Web] Small fixes and enhancements.Fabio Alessandrelli
- "Definitive" fix for ENOENT randomly disappearing from emscripten. - Proper shutdown when setup fails. - Re-enable WebGL explicit buffer swap. - Re-enable optional per-pixel transparency. - Add type cast to make closure compiler happy. - Remove emscripten Safari WebGL workaround. - Improve AudioWorklet cleanup.