Showing the changes to libraries/script-engine/src/ScriptManager.cpp (1 of 16 files). Show all
Unified · Split
| @@ -91,6 +91,21 @@ Q_DECLARE_METATYPE(ScriptValue); · 90 unmodified lines | |||
| 91 | static ScriptManager::StaticInitializerNode* rootInitializer = nullptr; | 91 | static ScriptManager::StaticInitializerNode* rootInitializer = nullptr; |
| 92 | static ScriptManager::StaticTypesInitializerNode* rootTypesInitializer = nullptr; | 92 | static ScriptManager::StaticTypesInitializerNode* rootTypesInitializer = nullptr; |
| 93 | 93 | ||
| 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 | |||
| 94 | void ScriptManager::registerNewStaticInitializer(StaticInitializerNode* dest) { | 109 | void ScriptManager::registerNewStaticInitializer(StaticInitializerNode* dest) { |
| 95 | // this function is assumed to be called on LoadLibrary, where we are explicitly operating in single-threaded mode | 110 | // this function is assumed to be called on LoadLibrary, where we are explicitly operating in single-threaded mode |
| 96 | // Therefore there is no mutex or threadsafety here and the structure is assumed not to change after loading | 111 | // 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 | |||
| 634 | return; | 649 | return; |
| 635 | } | 650 | } |
| 636 | _areMetaTypesInitialized = true; | 651 | _areMetaTypesInitialized = true; |
| 637 | auto scriptEngine = _engine.get(); | ||
| 638 | runStaticTypesInitializers(this); | 652 | 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); | ||
| 661 | } | 653 | } |
| 662 | 654 | ||
| 663 | void ScriptManager::init() { | 655 | void ScriptManager::init() { |