summaryrefslogtreecommitdiff
path: root/core
AgeCommit message (Collapse)Author
2022-07-22Merge pull request #63141 from reduz/implement-thread-runnerRémi Verschelde
2022-07-22Merge pull request #62996 from reduz/feature-build-profilesRémi Verschelde
2022-07-22Implement a Worker ThreadPoolreduz
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-22Implement Feature Build Profilesreduz
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-22Merge pull request #63286 from RandomShaper/fix_debugger_focusRémi Verschelde
2022-07-22Merge pull request #63242 from m4gr3d/fix_slow_copy_mainRémi Verschelde
Address slow copy performance when using the `FileAccessFilesystemJAndroid` implementation
2022-07-21Fix editor re-focus on debugger break on WindowsPedro J. Estébanez
2022-07-21Rename `epsilon` to `tolerance` in the `Plane::has_point` methodYuri Rubinsky
2022-07-21Address slow copy performance when using the `FileAccessFilesystemJAndroid` ↵Fredia Huya-Kouadio
implementation. Read/write ops for this implementation are done through the java layer via jni, and so for good performance, it's key to avoid numerous repeated small read/write ops due the jni overhead. The alternative is to allocate a (conversatively-sized) large buffer to reduce the number of read/write ops over the jni boundary.
2022-07-21Merge pull request #63128 from ↵Rémi Verschelde
cdemirer/fix-callable-comparator-error-message-argcount
2022-07-21Rename OSX to macOS and iPhoneOS to iOS.bruvzg
2022-07-20Add peer visibility to MultiplayerSynchronizer.Fabio Alessandrelli
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-19Merge pull request #63190 from fabriceci/fix-calculation-angular-velocityRémi Verschelde
2022-07-19Merge pull request #63187 from RandomShaper/fix_atomic_cmp_exchangeRémi Verschelde
2022-07-19Merge pull request #63005 from Chaosus/image_rotateRémi Verschelde
Implement `rotate_90/rotate_180` functions to `Image`
2022-07-19Fix the calculation of the angular velocity when the rotation speed is not high.fabriceci
2022-07-19Use the right memory ordering in SafeNumeric operationsPedro J. Estébanez
2022-07-18Use integer types in Image and ImageTexture methodsFireForge
- 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-18Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@880abd09c97618d97a0e44e3761262f6fd1c6225
2022-07-18Fix the argcount when generating error message for CallableComparatorcdemirer
2022-07-16Changed bool to GdNativeBoolbasta
2022-07-15Implement `rotate_90/rotate_180` functions to `Image`Yuri Rubinsky
2022-07-15Use BitField hint for the TextServer enums. Add missing parts for BitField ↵bruvzg
support to the GDextension API.
2022-07-12Remove unused hintskobewi
2022-07-08Add static methods for creating Image and ImageTexturekobewi
2022-07-07Merge pull request #62808 from bruvzg/macos_file_url_handleRémi Verschelde
2022-07-07Merge pull request #62108 from bruvzg/font_config_v3Rémi Verschelde
2022-07-07[macOS] Improve file association handling, and allow URL schema handling.bruvzg
2022-07-07Allows parsing of invalid UTF-16 surrogates (can be encountered in Windows ↵bruvzg
filenames) and some non-standard UTF-8 variants, makes Unicode parse errors more verbose.
2022-07-06Merge pull request #62776 from lawnjelly/remove_octreeRémi Verschelde
2022-07-06Merge pull request #62713 from YuriSizov/docs-scripting-annotationsRémi Verschelde
2022-07-06Remove Octreelawnjelly
Octree is no longer used in 4.x.
2022-07-06Refactor Font configuration and import UI, and Font resources.bruvzg
2022-07-05Implement a BitField hintreduz
Allows to specify the binder that an enum must be treated as a bitfield.
2022-07-05Merge pull request #62459 from m4gr3d/refactor_android_storage_handling_mainRémi Verschelde
2022-07-05Add full support for Android scoped storage.Fredia Huya-Kouadio
This was done by refactoring directory and file access handling for the Android platform so that any general filesystem access type go through the Android layer. This allows us to validate whether the access is unrestricted, or whether it falls under scoped storage and thus act appropriately.
2022-07-05Implement XMLParser.get_current_line()kobewi
2022-07-04Merge pull request #62212 from hansemro/eraser-detect-4Rémi Verschelde
Add inversion/eraser-end property for tablet pens
2022-07-04[macOS, Windows, X11] Add stylus inverted/eraser support toHansem Ro
InputEventMouseMotion event
2022-07-04Add support for documenting built-in annotationsYuri Sizov
2022-07-04Expression built-in functions can also be considered as identifiers in ↵cdemirer
subscripts
2022-07-04Use custom key structs, instead of raw hashes for the Label3D and TextMesh, ↵bruvzg
to avoid potential hash collisions.
2022-07-03Input: Re-enable input accumulation by defaultRémi Verschelde
I turned it off by mistake in #38697. See also #62664 for details on this boolean's complex history :)
2022-07-02Merge pull request #61610 from ↵Rémi Verschelde
TokageItLab/importer-retarget-registered-gdhumanoid
2022-07-01Merge pull request #62589 from KoBeWi/custom_threadsRémi Verschelde
2022-07-01Handle custom Callables in Thread.start()kobewi
2022-07-01Add arch flag to assembler to fix build on ARM64 macOS / iOS.bruvzg
2022-07-01Merge pull request #62477 from lyuma/packedbytearrayRémi Verschelde
Prevent out-of-bounds write in array conversion; avoid logspam on empty arrays.
2022-06-30Prevent out-of-bounds write in array conversion; avoid logspam on empty arrays.Lyuma
2022-06-30Merge pull request #62540 from MinusKube/debugger-array-crashRémi Verschelde
Add/fix support for RID, Callable and Signal in editor properties