summaryrefslogtreecommitdiff
path: root/core/io
AgeCommit message (Collapse)Author
2022-09-04Treat JSON as resource files.Juan Linietsky
This makes the files ended in ".json" be treated as Godot resources. This solves two problems: * Avoid extensions to implement their own handling, which results in conflicts (all must use this one). * Allow code to still work opening it as a file (since it will not be imported).
2022-09-01Merge pull request #65212 from Faless/net/4.x_simplify_ext_bindingsRémi Verschelde
2022-09-01Merge pull request #65187 from JohanAR/vector_to_sizeRémi Verschelde
2022-09-01Merge pull request #65206 from aaronfranke/fix-projection-decodeRémi Verschelde
2022-09-01Replace Vector2(i) with Size2(i) for methods returning a sizeJohan Aires Rastén
2022-09-01Simplify network GDExtension bindings using EXBIND macros.Fabio Alessandrelli
Simplify StreamPeer, PacketPeer, MultiplayerPeer extension. Simplify and update WebRTC*Extension with newly supported types.
2022-09-01Fix a minor bug in the Projection binary decode logicAaron Franke
2022-09-01Add support for scene/resource customization in export pluginsJuan Linietsky
EditorExportPlugin adds a set of callbacks to allow customizing scenes, resources or subresources in all files exported: * Can take scene files, resource files and subresources in all of them. * Uses a cache for the converted files if nothing changes, so this work only happens if a file is modified. * Uses hashing to differentiate export configuration caches. * Removed the previous conversion code to binary, as this one uses existing stuff. This API is useful in several scenarios: * Needed by the "server" export platform to get rid of textures, meshes, audio, etc. * Needed by text to binary converters. * Needed by eventual optimizations such as shader precompiling on export, mesh merging and optimization, etc. This is a draft, feedback is very welcome.
2022-08-30Additional fixes to the Android `get_current_dir()` implementation.Fredia Huya-Kouadio
2022-08-29Rename String `plus_file` to `path_join`Aaron Franke
2022-08-29Merge pull request #65031 from akien-mga/os-drop-obsolete-resource-debuggingRémi Verschelde
2022-08-29Drop obsolete resource usage debug methods from OS classRémi Verschelde
These methods exist since the dawn of (open source) Godot and have hardly been updated over time, so they barely work and I'm fairly sure nobody is using them. (See #46505 for details.) While some of the functionality they aimed to provide might be useful for optimization work and introspection, this should likely be redesigned from scratch with a cleaner and more modern interface (e.g. exposed via the Performance singleton, or ResourceLoader, and a better API overall).
2022-08-29[Web] Rename JavaScript platform to Web.Fabio Alessandrelli
Also rename export name from "HTML5" to "Web".
2022-08-25Merge pull request #64776 from YuriSizov/import-images-moar-flagsRémi Verschelde
2022-08-25Merge pull request #64844 from RandomShaper/fa_access_typeRémi Verschelde
Add `FileAccess::get_access_type()`
2022-08-24Add FileAccess::get_access_type()Pedro J. Estébanez
2022-08-24fix arg naming in ResourceFormatLoader extensionderammo
2022-08-23Replace Array return types with TypedArray 2kobewi
2022-08-23Make `ImageLoader` take bit field flagsYuri Sizov
2022-08-16Make JSON methods statickobewi
2022-08-08Merge pull request #63632 from ↵Rémi Verschelde
dsnopek/fix-locale-remap-with-binary-resources-4.x [4.x] Fix locale resource remapping with binary conversion on export
2022-08-08Fix locale resource remapping with binary conversion on exportDavid Snopek
2022-08-08Add tests for empty/unnamed arguments to ClassDB, Variant, GDScriptYuri Sizov
2022-08-08Merge pull request #62861 from samdze/image-size-vector2iRémi Verschelde
Make Image.get_size() return a Vector2i instead of a Vector2
2022-08-06Merge pull request #63887 from qarmin/more_renamesRémi Verschelde
Various converter enhancements and bugfixes
2022-08-03Various converter enhancements and bugfixesRafał Mikrut
2022-08-03Merge pull request #56442 from PucklaMotzer09/remap_files_movedRémi Verschelde
2022-08-03Show dependency warning when removing remaps and fallback if translationPucklaMotzer09
remap does not exist
2022-08-02Merge pull request #49058 from madmiraal/add-override-fileaccessRémi Verschelde
Add override keywords to FileAccess and DirAccess derived classes
2022-08-02Add override keywords to DirAccess derived classesMarcel Admiraal
2022-08-02Add override keywords to FileAccess derived classesMarcel Admiraal
2022-08-02Merge pull request #61315 from lawnjelly/variant_bucket_poolsRémi Verschelde
Variant memory pools
2022-08-01File: Re-add support to skip CR (`\r`) in `File::get_as_text`Rémi Verschelde
This was removed in #63481, and we confirmed that it's better like this, but we add back the possibility to strip CR as an option, to optionally restore the previous behavior. For performance this is done directly in `String::parse_utf8`. Also fixes Android `FileAccess::get_line()` as this one _should_ strip CR. Supersedes #63717.
2022-07-30Fix using wrong variable when checking in `ResourceSaver::save`Rindbee
2022-07-29Swap arguments of ResourceSaver.save()kobewi
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-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 #62996 from reduz/feature-build-profilesRémi Verschelde
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-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-19Merge pull request #63005 from Chaosus/image_rotateRémi Verschelde
Implement `rotate_90/rotate_180` functions to `Image`
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-15Implement `rotate_90/rotate_180` functions to `Image`Yuri Rubinsky
2022-07-09Make Image.get_size() return a Vector2i instead of a Vector2Samuele Zolfanelli
2022-07-08Add static methods for creating Image and ImageTexturekobewi
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-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-04Variant memory poolslawnjelly
Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.