History

Return ScriptableResource from prefetch

Zach Pomerantz committed 10 years ago

Commit 8ad8b5d1 parent 3c7fc953 files · +105 −27Browse files

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

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+16−0
@@ -270,6 +270,20 @@ static void resultHandlerFromScriptValue(const QScriptValue& value, AnimVariantR · 269 unmodified lines
270270 assert(false);
271271 }
272272
273+// Templated qScriptRegisterMetaType fails to compile with raw pointers
274+using ScriptableResourceRawPtr = ScriptableResource*;
275+
276+static QScriptValue scriptableResourceToScriptValue(QScriptEngine* engine, const ScriptableResourceRawPtr& resource) {
277+ auto object = engine->newQObject(
278+ const_cast<ScriptableResourceRawPtr>(resource),
279+ QScriptEngine::ScriptOwnership);
280+ return object;
281+}
282+
283+static void scriptableResourceFromScriptValue(const QScriptValue& value, ScriptableResourceRawPtr& resource) {
284+ resource = static_cast<ScriptableResourceRawPtr>(value.toQObject());
285+}
286+
273287 void ScriptEngine::init() {
274288 if (_isInitialized) {
275289 return; // only initialize once
@@ -332,6 +346,8 @@ void ScriptEngine::init() { · 56 unmodified lines
332346 qScriptRegisterMetaType(this, animVarMapToScriptValue, animVarMapFromScriptValue);
333347 qScriptRegisterMetaType(this, resultHandlerToScriptValue, resultHandlerFromScriptValue);
334348
349+ qScriptRegisterMetaType(this, scriptableResourceToScriptValue, scriptableResourceFromScriptValue);
350+
335351 // constants
336352 globalObject().setProperty("TREE_SCALE", newVariant(QVariant(TREE_SCALE)));
337353