Commit Graph

4043 Commits

Author SHA1 Message Date
Rémi Verschelde ff30a09993
Merge pull request #60643 from clayjohn/GLES3-3D 2022-05-12 21:08:02 +02:00
clayjohn 652adcd5bf Basic 3D rendering 2022-05-12 10:37:27 -07:00
reduz 8b7c7f5a75 Add a new HashMap implementation
Adds a new, cleaned up, HashMap implementation.

* Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing).
* Keeps elements in a double linked list for simpler, ordered, iteration.
* Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much
  for performance vs keeping the key, but helps replace old code).
* Uses a more modern C++ iterator API, deprecates the old one.
* Supports custom allocator (in case there is a wish to use a paged one).

This class aims to unify all the associative template usage and replace it by this one:
* Map<> (whereas key order does not matter, which is 99% of cases)
* HashMap<>
* OrderedHashMap<>
* OAHashMap<>
2022-05-12 11:21:29 +02:00
derammo 96c21bc749 opengl3 driver now works on windows including multi window
fixed and simplified gl_manager_windows
swap buffers now called for all windows
fixed missing pixel format setting in additional windows
    this makes them work in OpenGL contexts
changed verbose error printing to write once
    this error message happens very frequently while opengl3 is not finished
removed dead code no longer needed after changes
fixed comments that were misinformation
window messages during window creation now handled
    these were previously discarded
    messages now tunnel the required context
changed failure to create opengl3 window on windows to be more fatal
marked a problem with pen code
conditional compilation of vulkan and opengl3 on windows fixed
windows debug builds now show messages on debug console also
rendering driver selection box now shows only compiled drivers
marked some problematic code
thanks to akien-mga for patiently rewriting my style mistakes
2022-05-11 16:12:40 -04:00
bruvzg d36c5514d3
Fix ZipIO crash when reused (and possible leaks). 2022-05-11 16:08:17 +03:00
Fabio Alessandrelli 9bdb853eec [HTML5] Limit the returned OS cpu count to 2.
Temporarily workaround issues due to godot spawning too many threads.
2022-05-11 00:26:02 +02:00
Fabio Alessandrelli 39d9a5540c [HTML5] Fix JS "tools" editor plugin.
Needed update after file/dir access refactoring.
2022-05-10 23:56:32 +02:00
Fabio Alessandrelli e8110474b6 [HTML5] Add "webgl/webgl2.h" as OpenGL include.
Requires emscripten versions > 2.0.17 .
2022-05-10 23:56:21 +02:00
bruvzg ffe61e0895
[macOS / iOS] Fix text-to-speech build with older macOS / iOS SDK.
Add __has_include check for AVFAudio include.
Add some explicit casts to avoid conflicts.
Change all `include`s to `import`s for consistency.
2022-05-10 21:11:34 +03:00
Haoyu Qiu a71e808112 Try to convert OS::execute() output to Unicode on Windows 2022-05-10 20:54:48 +08:00
bruvzg b268c4b4bc [Windows] Save and re-apply window icon when changing window style. 2022-05-10 11:12:04 +03:00
Rémi Verschelde c366f8d2d4 Crash handler: Use `print_error` to include backtrace in logs 2022-05-05 12:22:56 +02:00
Marcel Admiraal c893302ca1 Read and store joypad events in a separate thread on x11 platform 2022-05-05 07:51:54 +02:00
bruvzg 800a68837f Fix export plugins after embedded PCK loading changes. 2022-05-04 12:57:21 +03:00
Rémi Verschelde 5022efef02
Merge pull request #51682 from mdavisprog/os-is-process-running
OS::is_process_running function.
2022-05-04 09:02:33 +02:00
mdavisprog f3c1232c59 Add OS::is_process_running function.
Adds the is_process_running function to the native OS class and exposes it to script.

This is implemented on Windows and Unix platforms. A stub is provided for other platforms that do not support this function.

Documentation is updated to reflect new API function.
2022-05-03 17:27:17 -07:00
Fabio Alessandrelli 070bd87aaa [JS] Add flag to disable weak symbols in ZSTD.
Weak symbols are currently broken in upstream emscripten.
2022-05-03 21:52:55 +02:00
Fabio Alessandrelli a4c3e915be Added missing signature. 2022-05-03 18:44:49 +02:00
Rémi Verschelde 297241f368
Merge pull request #60714 from Calinou/typedef-remove-ref
Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
2022-05-03 14:28:18 +02:00
Rémi Verschelde cb7a5a81ad
Merge pull request #60224 from pfeodrippe/fix-simultaneous-touches 2022-05-03 13:56:45 +02:00
Rémi Verschelde 3894b08d0d
Merge pull request #60553 from madmiraal/separate-display_safe_area 2022-05-03 11:20:46 +02:00
Rémi Verschelde c9ce4069a3
Merge pull request #60601 from touilleMan/gdextension_get_library_path
Add GDNativeInterface::get_library_path to GDExtension
2022-05-03 08:13:34 +02:00
Hugo Locurcio 180e5d3028
Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
These typedefs don't save much typing compared to the full `Ref<Resource>`
and `Ref<RefCounted>`, yet they sometimes introduce confusion among
new contributors.
2022-05-03 01:43:50 +02:00
Rémi Verschelde c273ddc3ee Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`
Didn't commit all the changes where it wants to initialize a struct
with `{}`. Should be reviewed in a separate PR.

Option `IgnoreArrays` enabled for now to be conservative, can be
disabled to see if it proposes more useful changes.

Also fixed manually a handful of other missing initializations / moved
some from constructors.
2022-05-02 16:28:25 +02:00
Rémi Verschelde d56462d82a
Merge pull request #60638 from m4gr3d/support_hand_tracking_v2_main 2022-05-02 09:51:21 +02:00
Marcel Admiraal 97e87a2daf Fix screen_get_usable_rect returning display safe area 2022-05-02 09:31:32 +02:00
Rémi Verschelde bc7ccc909b
Merge pull request #60551 from madmiraal/implement-3466
Add a method for obtaining display cutouts on Android
2022-05-02 07:56:41 +02:00
Emmanuel Leblond 80f61352fb
Add GDNativeInterface::get_library_path to GDExtension 2022-04-29 00:51:04 +02:00
Rémi Verschelde cbdc33bcf7
Merge pull request #60563 from madmiraal/fix-60562 2022-04-29 00:30:30 +02:00
bruvzg 652f78785b
[Linux] Disable speech-dispatcher, pulse audio and udev wrapper builds, when library is not found. 2022-04-28 18:13:34 +03:00
bruvzg 6ab672d1ef Implement text-to-speech support on Android, iOS, HTML5, Linux, macOS and Windows.
Implement TextServer word break method.
2022-04-28 14:35:41 +03:00
bruvzg 2ca91948de [Windows Export] Improve error messages for missing rcedit and signtool. 2022-04-28 10:48:30 +03:00
Fredy Huya-Kouadio c63ca6c72b Update Meta hand tracking version
https://developer.oculus.com/blog/presence-platforms-hand-tracking-api-gets-an-upgrade/
2022-04-27 20:56:24 -07:00
Marcel Admiraal 5924e2b90e Check for null when retrieving clip data item text on Android 2022-04-27 16:12:33 +02:00
Rémi Verschelde 504708ae21
Merge pull request #56093 from bruvzg/pck_section_load
Improve embedded PCK loading and exporting.
2022-04-27 14:29:21 +02:00
Rémi Verschelde 8dfa12cae7
Merge pull request #59979 from bruvzg/cpp_check2 2022-04-27 10:08:26 +02:00
Rémi Verschelde a300fb6665
Merge pull request #60523 from akien-mga/linux-pkgconfig-nixos 2022-04-27 09:41:58 +02:00
Rémi Verschelde 8a996d7b38
Merge pull request #60397 from timoschwarzer/ios-haptic-engine 2022-04-27 09:40:58 +02:00
Rémi Verschelde e89fc52ec6
Merge pull request #58272 from bruvzg/x11_backup_screen_info 2022-04-27 09:34:25 +02:00
Marcel Admiraal 71ce5857ec Add a method for obtaining display cutouts on Android 2022-04-26 13:51:21 +02:00
Rémi Verschelde 07ad066420 Linux: Use pkg-config for alsa, libudev and GL too
It's not needed on most distros as those are found in standard lib
and include paths, but on NixOS they're all in non-standard prefixes,
so we need to rely on information provided by pkg-config.

Fixes #59913.

Co-authored-by: David Lewis <davidalewis00@gmail.com>
2022-04-26 09:37:28 +02:00
Rémi Verschelde d9f7da2230
Merge pull request #60433 from madmiraal/remove-superfluous-null-check
Remove superfluous null check
2022-04-25 16:02:40 +02:00
Rémi Verschelde b4a1a76bce
Merge pull request #60457 from madmiraal/replace-index-iterators
Replace index iterators with for each loops.
2022-04-25 16:02:28 +02:00
Rémi Verschelde 5e599d7c22
Merge pull request #60441 from madmiraal/remove-superfluous-inputmanager
Remove superfluous Android InputManager interface and implementation
2022-04-25 15:41:55 +02:00
Rémi Verschelde d167583517
Merge pull request #60434 from madmiraal/remove-superfluous-version-check
Remove superfluous check for minimum Android SDK.
2022-04-25 15:40:33 +02:00
Fredy Huya-Kouadio 3b1e62bc7c Fix the issue causing the screen to be black after resuming when in low processor mode.
This is done by forcing a redraw and buffers swap when resuming the app.
2022-04-25 00:25:17 -07:00
Marcel Admiraal 334ebd7eb7 Replace index iterators with for each loops. 2022-04-23 09:45:44 +02:00
Marcel Admiraal 2f225bf2c5 Remove superfluous check for minimum Android SDK. 2022-04-22 18:55:45 +02:00
Marcel Admiraal 22ca5b2eba Remove superfluous Android InputManager interface and implementation 2022-04-22 18:52:06 +02:00
Marcel Admiraal 988432b8bb Remove superfluous null check 2022-04-22 17:33:27 +02:00
Timo Schwarzer 4d3a7ad6ca
Vibrate using iOS haptics engine on supported devices 2022-04-20 22:28:29 +02:00
bruvzg c0cc41d6c1
Improve embedded PCK loading and exporting.
Windows export process:
  Limit size of executable with embedded PCK to 4 GB.
  Use "rcedit" before embedding PCK.
  Capture and process "rcedit" errors.

Windows, Linux:
  Add support for PCK loading from executable "pck" section.
2022-04-20 11:09:59 +03:00
bruvzg de4c97758a
Fix more issues found by cppcheck. 2022-04-20 10:34:00 +03:00
Paulo Feodrippe a6f06d57dc Fix simulatenous touches for different touch types 2022-04-13 22:52:08 -03:00
bruvzg 8b0761d1fd
Fix sub-menu keyboard navigation. 2022-04-13 09:58:38 +03:00
bruvzg d2ebac3a30
Remove or make private `FileAccess` `close()` methods. 2022-04-12 14:50:14 +03:00
bruvzg 4bf99f4af2 Narrow FileAccess scope to prevent deadlocks. 2022-04-12 10:54:39 +03:00
bruvzg 9381acb6a4
Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
bruvzg f851c4aa33
Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
Rémi Verschelde b79721fede
Merge pull request #59908 from bruvzg/fix_popup_close_race
Fix a possible race condition on popup close, that might cause multiple deletions of the same list item.
2022-04-06 08:35:56 +02:00
Rémi Verschelde 77843355a0 CI: Update black formatter and apply changes 2022-04-05 17:43:12 +02:00
bruvzg daa42e0e50
Fix a possible race condition on popup close, that might cause multiple deletions of the same list item. 2022-04-05 12:44:29 +03:00
Rémi Verschelde f8ab79e68a Zero initialize all pointer class and struct members
This prevents the pitfall of UB when checking if they have been
assigned something valid by comparing to nullptr.
2022-04-04 19:49:50 +02:00
Rémi Verschelde 53317bbe14
Merge pull request #59866 from m4gr3d/update_default_display_scale_main 2022-04-04 19:31:37 +02:00
Fredia Huya-Kouadio 8eabf77f54 Update the editor display scale based on the device's scaled density 2022-04-04 09:23:43 -07:00
Fredia Huya-Kouadio f1a7caf9bb Remove duplicate `resizable` settings 2022-04-04 09:18:07 -07:00
Rémi Verschelde 10d9e47949
Merge pull request #59861 from m4gr3d/enable_resizable_main 2022-04-04 11:17:24 +02:00
Fredia Huya-Kouadio 3f299e9255 Update `resize` settings:
- Unlock resizing for the Godot Editor
- Add an option to specify whether a game is resizeable for the Godot template
2022-04-04 01:02:10 -07:00
bruvzg 50bd5e6fbe
[macOS] Add bundle launch code for older (pre 10.15) macOS versions. 2022-04-04 08:04:37 +03:00
bruvzg ba0317be04
Add CI build with clang sanitizers, increase stack size to 30 MB for builds with sanitizers. 2022-04-01 13:15:35 +03:00
ConteZero 2eb36b8bdb Fix X11 is_window_maximized 2022-03-31 23:21:32 +02:00
Rémi Verschelde a647fb3e62 Fix typos with codespell
Using codespell 2.2-dev from current git.

Fix a couple incorrect uses of gendered pronouns.
2022-03-31 14:07:29 +02:00
Rémi Verschelde 04c17eb003
Merge pull request #59607 from m4gr3d/fix_low_processor_mode_main
Fix flickering issues with low processor mode on Android
2022-03-29 21:52:08 +02:00
Fredia Huya-Kouadio b176b31f5d Fix flickering issues with low processor mode on Android 2022-03-29 12:17:09 -07:00
Lyuma ee02a7f785 Keep editor at normal priority on windows.
The multithreaded importer often causes system-wide hangs when importing more than 20 files at a time.
Running the editor at normal priority allows other applications on the system to be responsive during long imports.
2022-03-29 00:01:31 -07:00
Fredy Huya-Kouadio 5711037bf6 Android port of the Godot Editor
These set of changes focus primarily on getting the core logic and overall Godot Editor UI and functionality up and running natively on Android devices.
UI tweaks / cleanup / polish, as well configuration for Android specific functionality / restrictions will be addressed in follow-up PRs iteratively based on feedback.

Co-authored-by: thebestnom <shoval.arad@gmail.com>
2022-03-28 14:04:51 -07:00
Rémi Verschelde 00e9170812
Merge pull request #59574 from Sauermann/proposal-rename-warp-mouse
Rename warp mouse functions to warp_mouse
2022-03-28 08:52:02 +02:00
Markus Sauermann 0494e024d8 Rename warp mouse functions to warp_mouse 2022-03-27 14:12:01 +02:00
Rémi Verschelde 93b7a85c98 HTML5: Explain why export templates are missing
Same for UWP.

This is skipped in DEV_ENABLED builds so contributors can still test
the export pipeline (and CI still compiles it on debug builds).
2022-03-26 20:27:36 +01:00
Rémi Verschelde 391633760b
Merge pull request #59465 from fountainment/fix_popupmenu 2022-03-24 12:52:42 +01:00
C.Even 6866eee641 Fix PopupMenu behavior on MacOS when multiple monitors are used
* DisplayServerOSX::mouse_get_position returns wrong x axis data in
  multi-monitor case, which makes mouse_process_popups send
  WINDOW_EVENT_CLOSE_REQUEST, then eventually make PopupMenu close on
  mouse down without activating item.
2022-03-24 18:04:41 +08:00
Rémi Verschelde 476b8a2249
Merge pull request #59416 from aaronfranke/export-file 2022-03-24 09:55:24 +01:00
dependabot[bot] 505dce7528
Bump minimist from 1.2.5 to 1.2.6 in /platform/javascript
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-23 19:50:11 +00:00
Aaron Franke 13392a96e9
Generate export template file names instead of having a fixed set 2022-03-22 10:16:03 -05:00
Rémi Verschelde 9433c1d70c
Merge pull request #59394 from aaronfranke/linux-export-x86_32 2022-03-22 13:31:28 +01:00
bruvzg 595995a5a7
[macOS] Add missing global menu features. 2022-03-22 12:38:14 +02:00
Aaron Franke ac3ecec58e
Change extension for Linux 32-bit x86 exports to x86_32 2022-03-21 14:56:27 -05:00
Aaron Franke f301451fa3
Move extension logic to EditorExportPlatformLinuxBSD 2022-03-21 12:50:31 -05:00
Aaron Franke e5e697564d
Move fixup_embedded_pck to EditorExportPlatform classes 2022-03-20 21:04:22 -05:00
Rémi Verschelde 02f61d9fb3
Merge pull request #59287 from Vitika9/59181
Right-clicking will not close popup in windows
2022-03-18 19:45:30 +01:00
Vitika9 8bbc7614f6 Right-clicking will not close popup 2022-03-18 22:13:54 +05:30
Rémi Verschelde cc1bc09090
Merge pull request #58455 from bruvzg/export_script 2022-03-18 14:34:42 +01:00
Rémi Verschelde 70eb95c30c
Merge pull request #57850 from pkowal1982/icon
Change godot.ico to uncompressed/fixed size
2022-03-18 07:41:30 +01:00
ztco224 4802f15231 Fix DST Error on Windows 2022-03-17 06:28:08 -04:00
Rémi Verschelde f995f47965
Merge pull request #59062 from BastiaanOlij/storagerd_texture 2022-03-17 10:08:33 +01:00
Rémi Verschelde 5c7971d856
Merge pull request #59146 from m4gr3d/setup_mavencentral_publishing 2022-03-16 17:24:22 +01:00
Rémi Verschelde fa37f17029 Windows: Properly set `mouse_monitor` instead of shadowing it
GCC was raising a warning about unused variable, but it's actually meant
to be used in the destructor for deinit.
2022-03-16 15:48:56 +01:00
bruvzg 98d0af7d5c
Implement GDExtension export plugin. 2022-03-16 11:16:19 +02:00
Bastiaan Olij 57e5a33623 Split dummy renderer classes into separate files
Split canvas_texture_storage and texture_storage from render_storage class
2022-03-16 17:43:10 +11:00
Fredia Huya-Kouadio a2bf47de2b Setup logic to publish the Godot Android library to MavenCentral 2022-03-14 14:53:39 -07:00