History

Proper handling of enum classes for scripting

ksuprynowicz committed 4 years ago

Commit 33c86071 parent 95434a24 files · +59 −11Browse files

Showing the changes to interface/src/scripting/RenderScriptingInterface.cpp (1 of 4 files). Show all

Unified · Split

interface/src/scripting/RenderScriptingInterface.cpp+8−2
@@ -1,16 +1,24 @@
11 //
22 // Created by Sam Gondelman on 5/16/19
33 // Copyright 2013-2019 High Fidelity, Inc.
4+// Copyright 2022 Overte e.V.
45 //
56 // Distributed under the Apache License, Version 2.0.
67 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
78 //
89 #include "RenderScriptingInterface.h"
910
11+#include <ScriptEngineCast.h>
12+
1013 #include "LightingModel.h"
1114 #include <QScreen>
1215 #include "ScreenName.h"
1316
17+STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){
18+ auto scriptEngine = manager->engine().get();
19+
20+ scriptRegisterMetaType(scriptEngine, scriptValueFromEnumClass<RenderScriptingInterface::RenderMethod>, scriptValueToEnumClass<RenderScriptingInterface::RenderMethod>, "RenderMethod");
21+});
1422
1523 RenderScriptingInterface* RenderScriptingInterface::getInstance() {
1624 static RenderScriptingInterface sharedInstance;
@@ -22,8 +30,6 @@ std::once_flag RenderScriptingInterface::registry_flag; · 5 unmodified lines
2230 RenderScriptingInterface::RenderScriptingInterface() {
2331 std::call_once(registry_flag, [] {
2432 qmlRegisterType<RenderScriptingInterface>("RenderEnums", 1, 0, "RenderEnums");
25− qRegisterMetaType<RenderScriptingInterface::RenderMethod>("RenderScriptingInterface::RenderMethod");
26− qDebug() << "qRegisterMetaType<RenderScriptingInterface::RenderMethod>(\"RenderScriptingInterface::RenderMethod\")";
2733 });
2834 }
2935