Commit Graph
5348 Commits
Author SHA1 Message Date
Rémi VerscheldeandGitHub d2fa9cbdfd Merge pull request #63141 from reduz/implement-thread-runner 2022-07-22 13:25:31 +02:00
Rémi VerscheldeandGitHub 653f95282c Merge pull request #62996 from reduz/feature-build-profiles 2022-07-22 12:50:20 +02:00
reduz 67a260d63f Implement a Worker ThreadPool
This PR implements a worked thread pool. It uses a fixed amount of threads in a pool and allows scheduling tasks
that can be run on threads (and then waited for). It satisfies the following use cases:

* HTML5 thread count is fixed (and similar restrictions are known in consoles) so we need to reuse threads.
* Thread spawning is slow in general, so reusing threads is faster anyway.
* This implementation supports recursive waiting for tasks, making it less prone to deadlocks if threads from the pool also run tasks.

After this is approved and merged, subsequent PRs will be needed to replace the ThreadWorkPool usage by this class.
2022-07-22 11:46:48 +02:00
reduz 6236a688b7 Implement Feature Build Profiles
This PR is a continuation of #50381 (which was implemented exactly a year ago!)

* Add a visual interface to select which classes should not be built into Godot (well, they are built if something else uses them, but if not used the optimizer will remove them out).
* Add a detection system to scan the project and figure out the actual classes used.
* Added the ability for SCons to load build profiles.

Obligatory Screen:

A simple test with a couple of nodes in the scene resulted in a 25% reduction for the final binary size

TODO:

* Script languages need to implement used class detection (left for another PR).
* Options to disable servers or server functionalities (like 2D or 3D physics, navigation, etc). Are missing, that should also greatly aid in reducing binary size.
* Options to disable some modules would be desired.
* More options to disable drivers (OpenGL, Vulkan, etc) would be desired.

In general this PR is a starting point for more contributors to improve and enhance this functionality.
2022-07-22 10:53:23 +02:00
Yuri Rubinsky ccc56cc6d4 Rename epsilon to tolerance in the Plane::has_point method 2022-07-21 20:15:15 +03:00
luz paz 38aaaa3cf9 Fix various typos not caught by codespell
Revert upstream `core/input/gamecontrollerdb.txt`. Upstream fix: https://github.com/gabomdq/SDL_GameControllerDB/pull/600
2022-07-21 07:38:23 -04:00
bruvzg 8823eae328 Rename OSX to macOS and iPhoneOS to iOS. 2022-07-21 09:37:52 +03:00
Rémi VerscheldeandGitHub 0f6028378f Merge pull request #63127 from KoBeWi/raise_from_picture 2022-07-20 22:34:05 +02:00
Rémi VerscheldeandGitHub fa2dcc7ace Merge pull request #47935 from HaSa1002/doc-loading-run-time 2022-07-20 22:33:49 +02:00
Fabio Alessandrelli ddee5f6050 Add peer visibility to MultiplayerSynchronizer.
MultiplayerSynchronizers can now be configured to limit their visibility
to a subset of the connected peers, if the synchronized node was spawned
by a MultiplayerSpawner (either automatically or via custom spawn) the
given node will also be despawned remotely.

The replication system doesn't have the logic to handle subspawn
directly, but it is possible to handle them appropriately by manually
updating the visibility of the parent before changing the one of the
nested spawns via the "update_visibility" function.

The visibility of each MultiplayerSynchronizer can be controlled by
adding or remove filters via "[add|remove]_visibility_filter(callable)".

To further optimize the network code, visibility filters can be configured
to be automatically updated during idle or physics frame, or set to always
require manual update (via the "update_visibility" function).
2022-07-20 19:08:35 +02:00
Max HilbrunnerandGitHub 8d15814e6a Merge pull request #60256 from octetdev2/docs-fix-staked-typo
Fix typo in `TILE_LAYOUT_OFFSET_STACKED` description
2022-07-20 12:18:41 +02:00
Vojtěch Struhár 5a61906330 Filled in MultiMesh instance_count doc. 2022-07-19 22:41:56 +02:00
Rémi VerscheldeandGitHub 715f556cd4 Merge pull request #62139 from bruvzg/label_font_setttings
Add LabelSettings resource for quick Label theme property override.
2022-07-19 20:16:01 +02:00
Rémi VerscheldeandGitHub eea14a0edc Merge pull request #63005 from Chaosus/image_rotate
Implement `rotate_90/rotate_180` functions to `Image`
2022-07-19 15:21:16 +02:00
Rémi VerscheldeandGitHub 7fd29b5464 Merge pull request #59301 from fire-forge/layout-preset-full-rect 2022-07-19 12:06:00 +02:00
FireForgeandFireForge 97dfbea6ad Rename Control PRESET_WIDE to PRESET_FULL_RECT 2022-07-18 20:08:11 -05:00
FireForge 84431bd782 Use integer types in Image and ImageTexture methods
- Image.blit_rect()
- Image.blit_rect_mask()
- Image.blend_rect()
- Image.blend_rect_mask()
- Image.fill_rect()
- Image.get_used_rect()
- Image.get_rect()
- ImageTexture.set_size_override()
2022-07-18 19:43:32 -05:00
kobewi e8288ac9ab Clarify create_from_image() usage 2022-07-18 13:01:04 +02:00
Rémi VerscheldeandGitHub 2c6707cb02 Merge pull request #63134 from KoBeWi/plugin4screen 2022-07-18 11:21:13 +02:00
kobewi 058c1eac25 Improve docs on how to make main screen plugin 2022-07-18 10:36:17 +02:00
Rémi Verschelde dfc76dc26d i18n: Sync classref translations with Weblate
(cherry picked from commit 7379f2c76a)
2022-07-18 10:29:25 +02:00
Rémi VerscheldeandGitHub 181759e872 Merge pull request #62849 from Calinou/doc-httprequest-timeout 2022-07-18 09:19:58 +02:00
Zak GrumblesandRémi Verschelde 349c750b18 Improve documentation for Camera3D's current member
* Added additional information to the camera documentation to explain
  how the 'current' attribute behaves when multiple cameras are in a
  scene.
2022-07-17 11:29:59 +02:00
Bastiaan Olij d139131aab Adding Variable Rate Shading support to Godot
Improve GI renderer and add VRS support
Implement render device has_feature and move subgroup settings to limit_get
2022-07-17 15:42:24 +10:00
Rémi VerscheldeandGitHub 9dfd120a7e Merge pull request #63077 from Zylann/doc_plane_distance_to
Indicate Plane.distance_to returns a signed distance
2022-07-16 23:10:12 +02:00
snailrhymerandGitHub c051c84385 Fix typo in VehicleBody3D.xml 2022-07-16 18:06:01 +01:00
Marc Gilleron 45e329c1d2 Indicate Plane.distance_to returns a signed distance 2022-07-16 18:00:31 +01:00
Rémi VerscheldeandGitHub 5a6b13b8bb Merge pull request #62939 from TokageItLab/implement-rest-fixer
Add Rest Fixer to importer retarget
2022-07-16 16:54:20 +02:00
Silc Renew 9be288edf9 refactor sync in AnimationTree 2022-07-16 21:45:32 +09:00
Silc Renew f3af3aedfe add rest fixer to importer retarget 2022-07-16 19:53:11 +09:00
Yuri Rubinsky 7e66903d56 Implement rotate_90/rotate_180 functions to Image 2022-07-15 11:50:42 +03:00
bruvzg cbe3a2dcb7 Use BitField hint for the TextServer enums. Add missing parts for BitField support to the GDextension API. 2022-07-15 08:49:50 +03:00
Rémi VerscheldeandGitHub 184f62cb46 Merge pull request #60458 from KoBeWi/Deprecated-hint,-unused- 2022-07-14 00:20:30 +02:00
Hugo Locurcio 21ea1c3835 Rename soft shadow quality project settings for easier searching
`rendering/quality/shadows` is now `rendering/quality/positional_shadow`
to explicitly denote that the settings only affect positional light shadows,
not directional light shadows.

Shadow atlas settings now contain the word "atlas" for easier searching.

Soft shadow quality settings were renamed to contain the word "filter".
This makes the settings appear when searching for "filter" in the
project settings dialog, like in Godot 3.x.
2022-07-13 19:56:02 +02:00
Rémi Verschelde 4639050c64 SpriteFrames: Sort animations alphabetically
And finally remove the 'frames' property which was added for compatibility with 2.1
in bed3efb17e.
Fixes #21765.

The 'animations' property on the other hand is needed, contrarily to what its comment
said (copy-paste mistake probably).

Also removes unused '_get_animation_list'.
2022-07-13 16:15:11 +02:00
Rémi VerscheldeandGitHub b942c1ffe3 Merge pull request #62827 from fire-forge/ok-cancel
Add `ok_button_text` to AcceptDialog and `cancel_button_text` to ConfirmationDialog
2022-07-13 14:10:38 +02:00
Rémi VerscheldeandGitHub fcc9dab73b Merge pull request #62748 from fire-forge/filedialog_filter
Seperate `filter` and `description` arguments in `EditorFileDialog/FileDialog.add_filter()`
2022-07-13 14:07:50 +02:00
bruvzg f63d54126d Add LabelSettings resource for quick Label theme property override. 2022-07-12 16:05:12 +03:00
Yuri SizovandGitHub 42537daeb1 Merge pull request #41833 from dalexeev/splash_delay
Add boot splash minimum display time setting
2022-07-12 15:58:15 +03:00
kobewi 2f777b9a1e Remove unused hints 2022-07-12 00:44:13 +02:00
FireForge af19501cc7 Seperate filter and description in FileDialog.add_filter() 2022-07-09 10:51:45 -05:00
FireForge e4067064ce Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
Hugo Locurcio 5f0cad8cfa Document the timeout property in HTTPRequest 2022-07-08 23:24:45 +02:00
kobewi d2900429e8 Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
Rémi Verschelde eedb729771 AudioStreamPlayer: Clarify that no validation is made on 'bus' name
Supersedes #39605.
Fixes #39585.
2022-07-08 09:33:25 +02:00
Rémi VerscheldeandGitHub 6a34b038d5 Merge pull request #42708 from drentsoft/improved_treeitem_docs_branch 2022-07-08 09:22:27 +02:00
Rémi VerscheldeandGitHub 7d3ff927de Merge pull request #62075 from Vitika9/gsoc-colorpicker 2022-07-08 09:06:47 +02:00
Derwent Ready (drentsoft)andRémi Verschelde df5a922880 Clarified usage of TreeItem get_next*() and get_prev*() functions. 2022-07-08 08:49:56 +02:00
Rémi VerscheldeandGitHub 6892df6b78 Merge pull request #62751 from jjor2/lightmapgi-typo
Fix small typo in LightmapGI class reference
2022-07-08 07:45:09 +02:00
Rémi VerscheldeandGitHub 1e553e34fb Merge pull request #62108 from bruvzg/font_config_v3 2022-07-07 12:22:49 +02:00