summaryrefslogtreecommitdiff
path: root/core
AgeCommit message (Collapse)Author
2022-07-25Merge pull request #63443 from rburing/bvh_debug_fixupRémi Verschelde
2022-07-25Fixup BVH debugging statementsRicardo Buring
2022-07-25Remove ThreadWorkPool, replace by WorkerThreadPoolJuan Linietsky
The former needs to be allocated once per usage. The later is shared for all threads, which is more efficient. It can also be better debugged.
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-07-25Merge pull request #63219 from reduz/implement-vector4-projectionRémi Verschelde
2022-07-24Merge pull request #63098 from Xwdit/fix_qualifiers_script_docRémi Verschelde
2022-07-24Fix missing method qualifiers in script docXwdit
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-07-24Solve discrepancy between code and class reference for PlaneJcrespo
On #43310, class reference was automatically updated from source, causing xml documentation to disagree with parameter naming description on Plane.intersects_segment(). Weirdly, it also changed the parameter for Plane.is_point_over() from point to plane, when only the first has sense (and it is defined on math.Plane as "const Vector3 &p_point"). Manual mistake? * Update begin/end to from/to on Plane.intersects_segment(...) docs description to match source * Update Plane bindings to use points instread of plane for is_point_over(...) * Change Plane.is_point_over(plane) to Plane.is_point_over(point) AND its description on docs Fixes godotengine/godot-docs#5976
2022-07-24Merge pull request #63262 from dsnopek/multiplayer-peer-custom-4.xFabio Alessandrelli
[4.x] Allow extending MultiplayerPeerExtension from GDScript
2022-07-23Implement Vector4, Vector4i, Projectionreduz
Implement built-in classes Vector4, Vector4i and Projection. * Two versions of Vector4 (float and integer). * A Projection class, which is a 4x4 matrix specialized in projection types. These types have been requested for a long time, but given they were very corner case they were not added before. Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity. **Q**: Why Projection and not Matrix4? **A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
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-20Allow extending MultiplayerPeerExtension from GDScriptDavid Snopek
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