summaryrefslogtreecommitdiffstats
path: root/editor/editor_file_system.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove ThreadWorkPool, replace by WorkerThreadPoolJuan Linietsky2022-07-251-3/+0
| | | | | 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.
* Add a new HashSet templatereduz2022-05-201-8/+8
| | | | | * Intended to replace RBSet in most cases. * Optimized for iteration speed
* Replace most uses of Map by HashMapreduz2022-05-161-10/+10
| | | | | | | | | | | | * Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
* Make FileAccess and DirAccess classes reference counted.bruvzg2022-04-111-2/+2
|
* Zero initialize all pointer class and struct membersRémi Verschelde2022-04-041-3/+3
| | | | | This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
* Add Blender install autodetection and configuration.reduz2022-04-011-0/+36
| | | | | | | | | | | | | This PR is a continuation to #54886 * Changed Blender path editor setting from binary to installation. * Add a class to query whether the format is supported. * This class allows to create proper editors to configure support. **NOTE**: This PR only provides autodetection on Linux. Code needs to be added for Windows and MacOS to autodetect the Blender installation. Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com> Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
* Initialize bools in the headers in editorAaron Franke2022-03-121-10/+10
|
* Prevent renaming to an unkown extension from FileSystem dock.jmb4622022-01-171-0/+1
|
* Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
| | | | Happy new year to the wonderful Godot community!
* Add TextFile support across the editorPaulb232021-09-301-0/+1
|
* Implement Extension Loaderreduz2021-08-201-0/+2
| | | | | | | * Extensions are now scanned and loaded on demand. * Extensions found are cached into a file that is used to load them (which is also exported). * Editor will ask to restart when an extension requires core functionality. * Editor will attempt to load extensions always before importing or loading scenes. This ensures extensions can register the relevant types.
* Implement Resource UIDsreduz2021-07-241-0/+4
| | | | | | | | | | | | | | | | | | | | * Most resource types now have unique identifiers. * Applies to text, binary and imported resources. * File formats reference both by text and UID (when available). UID always has priority. * Resource UIDs are 64 bits for better compatibility with the engine. * Can be represented and used textually, example `uuid://dapwmgsmnl28u`. * A special binary cache file is used and exported, containing the mappings. Example of how it looks: ```GDScript [gd_scene load_steps=2 format=3 uid="uid://dw86wq31afig2"] [ext_resource type="PackedScene" uid="uid://bt36ojelx8q6c" path="res://subscene.scn" id="1_t56hs"] ``` GDScript, shaders and other special resource files can't currently provide UIDs, but this should be doable with special keywords on the files. This will be reserved for future PRs.
* Remove thread-unsafe and unused late_added_files.Lyuma2021-06-171-1/+0
| | | | | | _reimport_file is called from multiple threads as part of the threaded importer. Inserting to this set from a thread could hit a race condition leading to memory corruption or hangs. It seems to be unused, intentionally or unintentionally
* Core: Move DirAccess and FileAccess to `core/io`Rémi Verschelde2021-06-111-1/+1
| | | | | File handling APIs are typically considered part of I/O, and we did have most `FileAccess` implementations in `core/io` already.
* FileSystem: Force update when we delete a folder from the editor and ↵Mateo Kuruk Miccino2021-05-011-0/+2
| | | | searching changes only if we change the directory successfully in the scan_fs_changes
* Use multiple threads to import.Juan Linietsky2021-04-191-1/+15
| | | | | | | | | | - For now everything imports multithreaded by default (should work I guess, let's test). - Controllable per importer Early test benchmark. 64 large textures (importing as lossless, _not_ as vram) on a mobile i7, 12 threads: Importing goes down from 46 to 7 seconds. For VRAM I will change the logic to use a compressing thread in a subsequent PR, as well as implementing Betsy.
* Improved 3D Scene ImporterJuan Linietsky2021-03-221-1/+3
| | | | | | | | | | | | * Added option for importers to show an Advanced settings dialog * Created advanced settings dialog for Scene Importer * Cleaned up importers (remove many old/unused options) * Added the ability to customize every node, material, mesh and animation individually * Saving to animations and meshes to files is now a manual process, making it more predictable * Added the ability for materials to be replaced by external files (or to be made external, up to you). * When doubleclicking an impoted scene in the filesystem dock, it automatically shows the import settings instead of asking to open it. WARNING: Lightmap UV unwrap is not working, it needs to be re-made.
* Update the filtering logic to properly handle directories with `.gdignore` ↵Fredia Huya-Kouadio2021-02-241-0/+2
| | | | files.
* Modernize atomicsPedro J. Estébanez2021-02-181-1/+2
| | | | | | | | | | - Based on C++11's `atomic` - Reworked `SafeRefCount` (based on the rewrite by @hpvb) - Replaced free atomic functions by the new `SafeNumeric<T>` - Replaced wrong cases of `volatile bool` by the new `SafeFlag` - Platform-specific implementations no longer needed Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
* Modernize ThreadPedro J. Estébanez2021-01-291-2/+2
| | | | | | | | | - Based on C++11's `thread` and `thread_local` - No more need to allocate-deallocate or check for null - No pointer anymore, just a member variable - Platform-specific implementations no longer needed (except for the few cases of non-portable functions) - Simpler for `NO_THREADS` - Thread ids are now the same across platforms (main is 1; others follow)
* Update copyright statements to 2021Rémi Verschelde2021-01-011-2/+2
| | | | | | | | | | | | | | Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
* Cleanup unused engine codeTomasz Chabora2020-12-091-1/+0
|
* Initialize class/struct variables with default values in platform/ and editor/Rafał Mikrut2020-12-021-22/+15
|
* Reorganized core/ directory, it was too fatty alreadyreduz2020-11-071-1/+1
| | | | | | -Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
* Improve file sortingGilles Roudière2020-10-261-0/+1
|
* Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde2020-05-141-5/+0
| | | | | | | | | | | | | | Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
* Replace NULL with nullptrlupoDharkael2020-04-021-3/+3
|
* Style: Set clang-format Standard to Cpp11Rémi Verschelde2020-03-171-1/+1
| | | | | | | | | | For us, it practically only changes the fact that `A<A<int>>` is now used instead of the C++03 compatible `A<A<int> >`. Note: clang-format 10+ changed the `Standard` arguments to fully specified `c++11`, `c++14`, etc. versions, but we can't use `c++17` now if we want to preserve compatibility with clang-format 8 and 9. `Cpp11` is still supported as deprecated alias for `Latest`.
* Make file system scan more robustPedro J. Estébanez2020-02-101-0/+1
| | | | | | | | Previously, a change was missed if it happened while the scan was in progress and already past the affected location. Also: - Consider the scan changes thread on termination, in addition to the full scan one - Add FS-reported hidden to the check for hidden by the editor file system
* Update copyright statements to 2020Rémi Verschelde2020-01-011-2/+2
| | | | | | | | | | | Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.
* fix file system not refresh on exFATXiaoLongHan2019-05-241-1/+1
|
* Added ability for multiple images to be imported as an atlasJuan Linietsky2019-04-191-0/+12
| | | | | This adds support for groups in the import system, which point to a single file. Add property hint for saving files in file field
* -Properly handle missing ETC support on exportJuan Linietsky2019-02-261-0/+3
| | | | | -Added ability for resource importers to save metadata -Added ability for resource importers to validate depending on project settings
* Add function to obtain filesystem type from DirAccess.Juan Linietsky2019-01-211-0/+2
| | | | Change EditorFileSystem to not use directory modification times on FAT32, fixes #20946
* Update copyright statements to 2019Rémi Verschelde2019-01-011-2/+2
| | | | Happy new year to the wonderful Godot community!
* Reworked how non-imported resources are reloaded on change, fixes #19852Juan Linietsky2018-11-201-1/+2
|
* Moved folding outside the resource files, now saved outside the project.Juan Linietsky2018-10-291-2/+0
|
* Fixes to baker, restored xatlas and fixed bake options.Juan Linietsky2018-10-051-0/+2
|
* Make core/ includes absolute, remove subfolders from include pathRémi Verschelde2018-09-121-4/+4
| | | | | | This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
* Add custom icons to script classes.Will Nations2018-08-141-1/+4
|
* Global class names (and GDScript support for it)Juan Linietsky2018-07-151-0/+14
|
* Add missing copyright headers and fix formattingRémi Verschelde2018-01-051-0/+1
| | | | | | Using `misc/scripts/fix_headers.py` on all Godot files. Some missing header guards were added, and the header inclusion order was fixed in the Bullet module.
* Update copyright statements to 2018Rémi Verschelde2018-01-011-2/+2
| | | | Happy new year to the wonderful Godot community!
* Changed reimport logic to also check md5 before reimporting, fixes #13135Juan Linietsky2017-11-241-2/+2
| | | | | Has the nice side effect that you can share your .import folder or rename your project and godot wont reimport stuff.
* Fix import order, so scenes are imported after textures.Juan Linietsky2017-09-201-0/+8
| | | | Also fix bugs when meshes are always generated.
* Added nice icon to show when a file is broken on import.Juan Linietsky2017-08-291-0/+1
|
* Fix constant reimport on broken files, closes #9930Juan Linietsky2017-08-291-0/+2
|
* Use HTTPS URL for Godot's website in the headersRémi Verschelde2017-08-271-1/+1
|
* Several improvements and fixes to import system. Might fix many issues ↵Juan Linietsky2017-08-171-0/+7
| | | | opened, but have to check in detail..
* Removing a Resource also deletes imported files.Andreas Haas2017-08-151-0/+2
|