History

Fixes for code review

ksuprynowicz committed 4 years ago

Commit 586bd7f1 parent e9bfdd416 files · +142 −117Browse files

Showing the changes to libraries/script-engine/src/ScriptManager.cpp (1 of 16 files). Show all

Unified · Split

libraries/script-engine/src/ScriptManager.cpp+15−23
@@ -91,6 +91,21 @@ Q_DECLARE_METATYPE(ScriptValue); · 90 unmodified lines
9191 static ScriptManager::StaticInitializerNode* rootInitializer = nullptr;
9292 static ScriptManager::StaticTypesInitializerNode* rootTypesInitializer = nullptr;
9393
94+
95+using ScriptableResourceRawPtr = ScriptableResource*;
96+ScriptValue externalResourceBucketToScriptValue(ScriptEngine* engine, ExternalResource::Bucket const& in);
97+bool externalResourceBucketFromScriptValue(const ScriptValue& object, ExternalResource::Bucket& out);
98+static ScriptValue scriptableResourceToScriptValue(ScriptEngine* engine,
99+ const ScriptableResourceRawPtr& resource);
100+static bool scriptableResourceFromScriptValue(const ScriptValue& value, ScriptableResourceRawPtr& resource);
101+STATIC_SCRIPT_TYPES_INITIALIZER((+[](ScriptManager* manager){
102+ auto scriptEngine = manager->engine().get();
103+
104+ scriptRegisterMetaType<ExternalResource::Bucket, externalResourceBucketToScriptValue, externalResourceBucketFromScriptValue>(scriptEngine);
105+
106+ scriptRegisterMetaType<ScriptableResourceRawPtr, scriptableResourceToScriptValue, scriptableResourceFromScriptValue>(scriptEngine);
107+}));
108+
94109 void ScriptManager::registerNewStaticInitializer(StaticInitializerNode* dest) {
95110 // this function is assumed to be called on LoadLibrary, where we are explicitly operating in single-threaded mode
96111 // Therefore there is no mutex or threadsafety here and the structure is assumed not to change after loading
@@ -634,30 +649,7 @@ void ScriptManager::initMetaTypes() { · 537 unmodified lines
634649 return;
635650 }
636651 _areMetaTypesInitialized = true;
637− auto scriptEngine = _engine.get();
638652 runStaticTypesInitializers(this);
639− registerMIDIMetaTypes(scriptEngine);
640− registerEventTypes(scriptEngine);
641− registerMenuItemProperties(scriptEngine);
642−
643− scriptRegisterSequenceMetaType<QVector<QUuid>>(scriptEngine);
644− scriptRegisterSequenceMetaType<QVector<EntityItemID>>(scriptEngine);
645−
646− scriptRegisterSequenceMetaType<QVector<glm::vec2>>(scriptEngine);
647− scriptRegisterSequenceMetaType<QVector<glm::quat>>(scriptEngine);
648− scriptRegisterSequenceMetaType<QVector<QString>>(scriptEngine);
649−
650− scriptRegisterMetaType<AnimationDetails, animationDetailsToScriptValue, animationDetailsFromScriptValue>(scriptEngine);
651− scriptRegisterMetaType<WebSocketClass*, webSocketToScriptValue, webSocketFromScriptValue>(scriptEngine);
652− scriptRegisterMetaType<QWebSocketProtocol::CloseCode, qWSCloseCodeToScriptValue, qWSCloseCodeFromScriptValue>(scriptEngine);
653− scriptRegisterMetaType<WebSocketClass::ReadyState, wscReadyStateToScriptValue, wscReadyStateFromScriptValue>(scriptEngine);
654−
655− scriptRegisterMetaType<ExternalResource::Bucket, externalResourceBucketToScriptValue, externalResourceBucketFromScriptValue>(scriptEngine);
656−
657− scriptRegisterMetaType<ScriptableResourceRawPtr, scriptableResourceToScriptValue, scriptableResourceFromScriptValue>(scriptEngine);
658−
659− scriptRegisterMetaType<MeshProxy*, meshToScriptValue, meshFromScriptValue>(scriptEngine);
660− scriptRegisterMetaType<MeshProxyList, meshesToScriptValue, meshesFromScriptValue>(scriptEngine);
661653 }
662654
663655 void ScriptManager::init() {