1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-08 12:40:44 +00:00

Added basic support for custom resource savers and loaders

This commit is contained in:
Marc Gilleron
2018-06-11 02:59:53 +02:00
parent ca28c455bf
commit 065e2670af
77 changed files with 1102 additions and 145 deletions

View File

@@ -417,8 +417,8 @@ void PluginScriptLanguage::unlock() {
PluginScriptLanguage::PluginScriptLanguage(const godot_pluginscript_language_desc *desc) :
_desc(*desc) {
_resource_loader = memnew(ResourceFormatLoaderPluginScript(this));
_resource_saver = memnew(ResourceFormatSaverPluginScript(this));
_resource_loader = Ref<ResourceFormatLoaderPluginScript>(memnew(ResourceFormatLoaderPluginScript(this)));
_resource_saver = Ref<ResourceFormatSaverPluginScript>(memnew(ResourceFormatSaverPluginScript(this)));
// TODO: totally remove _lock attribute if NO_THREADS is set
#ifdef NO_THREADS
@@ -429,8 +429,6 @@ PluginScriptLanguage::PluginScriptLanguage(const godot_pluginscript_language_des
}
PluginScriptLanguage::~PluginScriptLanguage() {
memdelete(_resource_loader);
memdelete(_resource_saver);
#ifndef NO_THREADS
if (_lock) {
memdelete(_lock);

View File

@@ -48,8 +48,8 @@ class PluginScriptLanguage : public ScriptLanguage {
friend class PluginScript;
friend class PluginScriptInstance;
ResourceFormatLoaderPluginScript *_resource_loader;
ResourceFormatSaverPluginScript *_resource_saver;
Ref<ResourceFormatLoaderPluginScript> _resource_loader;
Ref<ResourceFormatSaverPluginScript> _resource_saver;
const godot_pluginscript_language_desc _desc;
godot_pluginscript_language_data *_data;
@@ -59,8 +59,8 @@ class PluginScriptLanguage : public ScriptLanguage {
public:
virtual String get_name() const;
_FORCE_INLINE_ ResourceFormatLoaderPluginScript *get_resource_loader() { return _resource_loader; };
_FORCE_INLINE_ ResourceFormatSaverPluginScript *get_resource_saver() { return _resource_saver; };
_FORCE_INLINE_ Ref<ResourceFormatLoaderPluginScript> get_resource_loader() { return _resource_loader; }
_FORCE_INLINE_ Ref<ResourceFormatSaverPluginScript> get_resource_saver() { return _resource_saver; }
/* LANGUAGE FUNCTIONS */
virtual void init();

View File

@@ -39,6 +39,9 @@
class PluginScriptLanguage;
class ResourceFormatLoaderPluginScript : public ResourceFormatLoader {
GDCLASS(ResourceFormatLoaderPluginScript, ResourceFormatLoader)
PluginScriptLanguage *_language;
public:
@@ -50,6 +53,9 @@ public:
};
class ResourceFormatSaverPluginScript : public ResourceFormatSaver {
GDCLASS(ResourceFormatSaverPluginScript, ResourceFormatSaver)
PluginScriptLanguage *_language;
public: