Add support for scene/resource customization in export plugins

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.
This commit is contained in:
Juan Linietsky
2022-08-31 11:12:42 +02:00
parent c40855f818
commit ef17c4668a
13 changed files with 727 additions and 110 deletions

View File

@@ -98,6 +98,12 @@
Removes the entire contents of the config.
</description>
</method>
<method name="encode_to_text" qualifiers="const">
<return type="String" />
<description>
Obtain the text version of this config file (the same text that would be written to a file).
</description>
</method>
<method name="erase_section">
<return type="void" />
<param index="0" name="section" type="String" />