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 | 91 | static ScriptManager::StaticInitializerNode* rootInitializer = nullptr; |
| 92 | 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 | 109 | void ScriptManager::registerNewStaticInitializer(StaticInitializerNode* dest) { |
| 95 | 110 | // this function is assumed to be called on LoadLibrary, where we are explicitly operating in single-threaded mode |
| 96 | 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 | 649 | return; |
| 635 | 650 | } |
| 636 | 651 | _areMetaTypesInitialized = true; |
| 637 | − auto scriptEngine = _engine.get(); | |
| 638 | 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 | 655 | void ScriptManager::init() { |