mirror of
https://github.com/overte-org/overte.git
synced 2025-07-26 06:29:50 +02:00
Fixed enums in scripting engine
This commit is contained in:
parent
d0b80ce64b
commit
b44a2a9339
11 changed files with 55 additions and 14 deletions
|
@ -7462,9 +7462,6 @@ void Application::registerScriptEngineWithApplicationServices(const ScriptManage
|
||||||
scriptEngine->registerGlobalObject("PlatformInfo", PlatformInfoScriptingInterface::getInstance());
|
scriptEngine->registerGlobalObject("PlatformInfo", PlatformInfoScriptingInterface::getInstance());
|
||||||
scriptEngine->registerGlobalObject("Rates", new RatesScriptingInterface(this));
|
scriptEngine->registerGlobalObject("Rates", new RatesScriptingInterface(this));
|
||||||
|
|
||||||
// hook our avatar and avatar hash map object into this script engine
|
|
||||||
getMyAvatar()->registerProperties(scriptEngine);
|
|
||||||
|
|
||||||
scriptEngine->registerGlobalObject("AvatarList", DependencyManager::get<AvatarManager>().data());
|
scriptEngine->registerGlobalObject("AvatarList", DependencyManager::get<AvatarManager>().data());
|
||||||
|
|
||||||
scriptEngine->registerGlobalObject("Camera", &_myCamera);
|
scriptEngine->registerGlobalObject("Camera", &_myCamera);
|
||||||
|
|
|
@ -21,9 +21,18 @@ STATIC_SCRIPT_TYPES_INITIALIZER(+[](ScriptManager* manager){
|
||||||
auto scriptEngine = manager->engine().get();
|
auto scriptEngine = manager->engine().get();
|
||||||
|
|
||||||
scriptRegisterMetaType(scriptEngine, scriptValueFromEnumClass<RefreshRateManager::RefreshRateRegime>, scriptValueToEnumClass<RefreshRateManager::RefreshRateRegime>, "RefreshRateRegime");
|
scriptRegisterMetaType(scriptEngine, scriptValueFromEnumClass<RefreshRateManager::RefreshRateRegime>, scriptValueToEnumClass<RefreshRateManager::RefreshRateRegime>, "RefreshRateRegime");
|
||||||
|
|
||||||
scriptRegisterMetaType(scriptEngine, scriptValueFromEnumClass<RefreshRateManager::UXMode>, scriptValueToEnumClass<RefreshRateManager::UXMode>, "UXMode");
|
scriptRegisterMetaType(scriptEngine, scriptValueFromEnumClass<RefreshRateManager::UXMode>, scriptValueToEnumClass<RefreshRateManager::UXMode>, "UXMode");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){
|
||||||
|
auto scriptEngine = manager->engine().get();
|
||||||
|
|
||||||
|
scriptEngine->registerEnum("RefreshRateRegime",QMetaEnum::fromType<RefreshRateManager::RefreshRateRegime>());
|
||||||
|
|
||||||
|
scriptEngine->registerEnum("UXMode",QMetaEnum::fromType<RefreshRateManager::UXMode>());
|
||||||
|
});
|
||||||
|
|
||||||
static const int VR_TARGET_RATE = 90;
|
static const int VR_TARGET_RATE = 90;
|
||||||
|
|
||||||
/*@jsdoc
|
/*@jsdoc
|
||||||
|
|
|
@ -119,6 +119,12 @@ STATIC_SCRIPT_TYPES_INITIALIZER(+[](ScriptManager* manager){
|
||||||
registerMetaTypes(scriptEngine);
|
registerMetaTypes(scriptEngine);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){
|
||||||
|
auto scriptEngine = manager->engine();
|
||||||
|
|
||||||
|
DependencyManager::get<AvatarManager>()->getMyAvatar()->registerProperties(scriptEngine);
|
||||||
|
});
|
||||||
|
|
||||||
const std::array<QString, static_cast<uint>(MyAvatar::AllowAvatarStandingPreference::Count)>
|
const std::array<QString, static_cast<uint>(MyAvatar::AllowAvatarStandingPreference::Count)>
|
||||||
MyAvatar::allowAvatarStandingPreferenceStrings = {
|
MyAvatar::allowAvatarStandingPreferenceStrings = {
|
||||||
QStringLiteral("WhenUserIsStanding"),
|
QStringLiteral("WhenUserIsStanding"),
|
||||||
|
|
|
@ -21,6 +21,13 @@ STATIC_SCRIPT_TYPES_INITIALIZER(+[](ScriptManager* manager){
|
||||||
scriptRegisterMetaType(scriptEngine, scriptValueFromEnumClass<PerformanceScriptingInterface::RefreshRateProfile>, scriptValueToEnumClass<PerformanceScriptingInterface::RefreshRateProfile>, "RefreshRateProfile");
|
scriptRegisterMetaType(scriptEngine, scriptValueFromEnumClass<PerformanceScriptingInterface::RefreshRateProfile>, scriptValueToEnumClass<PerformanceScriptingInterface::RefreshRateProfile>, "RefreshRateProfile");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){
|
||||||
|
auto scriptEngine = manager->engine().get();
|
||||||
|
|
||||||
|
scriptEngine->registerEnum("Performance.PerformancePreset",QMetaEnum::fromType<PerformanceScriptingInterface::PerformancePreset>());
|
||||||
|
scriptEngine->registerEnum("Performance.RefreshRateProfile",QMetaEnum::fromType<PerformanceScriptingInterface::RefreshRateProfile>());
|
||||||
|
});
|
||||||
|
|
||||||
std::once_flag PerformanceScriptingInterface::registry_flag;
|
std::once_flag PerformanceScriptingInterface::registry_flag;
|
||||||
|
|
||||||
PerformanceScriptingInterface::PerformanceScriptingInterface() {
|
PerformanceScriptingInterface::PerformanceScriptingInterface() {
|
||||||
|
|
|
@ -27,6 +27,12 @@ STATIC_SCRIPT_TYPES_INITIALIZER(+[](ScriptManager* manager){
|
||||||
scriptRegisterMetaType(scriptEngine, scriptValueFromEnumClass<PlatformInfoScriptingInterface::PlatformTier>, scriptValueToEnumClass<PlatformInfoScriptingInterface::PlatformTier>, "PlatformTier");
|
scriptRegisterMetaType(scriptEngine, scriptValueFromEnumClass<PlatformInfoScriptingInterface::PlatformTier>, scriptValueToEnumClass<PlatformInfoScriptingInterface::PlatformTier>, "PlatformTier");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){
|
||||||
|
auto scriptEngine = manager->engine().get();
|
||||||
|
|
||||||
|
scriptEngine->registerEnum("PlatformInfo.PlatformTier",QMetaEnum::fromType<PlatformInfoScriptingInterface::PlatformTier>());
|
||||||
|
});
|
||||||
|
|
||||||
PlatformInfoScriptingInterface* PlatformInfoScriptingInterface::getInstance() {
|
PlatformInfoScriptingInterface* PlatformInfoScriptingInterface::getInstance() {
|
||||||
static PlatformInfoScriptingInterface sharedInstance;
|
static PlatformInfoScriptingInterface sharedInstance;
|
||||||
return &sharedInstance;
|
return &sharedInstance;
|
||||||
|
|
|
@ -19,6 +19,13 @@ STATIC_SCRIPT_TYPES_INITIALIZER(+[](ScriptManager* manager){
|
||||||
scriptRegisterMetaType(scriptEngine, scriptValueFromEnumClass<AntialiasingConfig::Mode>, scriptValueToEnumClass<AntialiasingConfig::Mode>, "Mode");
|
scriptRegisterMetaType(scriptEngine, scriptValueFromEnumClass<AntialiasingConfig::Mode>, scriptValueToEnumClass<AntialiasingConfig::Mode>, "Mode");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){
|
||||||
|
auto scriptEngine = manager->engine().get();
|
||||||
|
|
||||||
|
scriptEngine->registerEnum("Render.RenderMethod",QMetaEnum::fromType<RenderScriptingInterface::RenderMethod>());
|
||||||
|
scriptEngine->registerEnum("AntialiasingMode",QMetaEnum::fromType<AntialiasingConfig::Mode>());
|
||||||
|
});
|
||||||
|
|
||||||
RenderScriptingInterface* RenderScriptingInterface::getInstance() {
|
RenderScriptingInterface* RenderScriptingInterface::getInstance() {
|
||||||
static RenderScriptingInterface sharedInstance;
|
static RenderScriptingInterface sharedInstance;
|
||||||
return &sharedInstance;
|
return &sharedInstance;
|
||||||
|
|
|
@ -147,14 +147,14 @@ public slots:
|
||||||
/*@jsdoc
|
/*@jsdoc
|
||||||
* Gets the active anti-aliasing mode.
|
* Gets the active anti-aliasing mode.
|
||||||
* @function Render.getAntialiasingMode
|
* @function Render.getAntialiasingMode
|
||||||
* @returns {integer} the active anti-aliasing mode.
|
* @returns {AntialiasingMode} the active anti-aliasing mode.
|
||||||
*/
|
*/
|
||||||
AntialiasingConfig::Mode getAntialiasingMode() const;
|
AntialiasingConfig::Mode getAntialiasingMode() const;
|
||||||
|
|
||||||
/*@jsdoc
|
/*@jsdoc
|
||||||
* Sets the active anti-aliasing mode.
|
* Sets the active anti-aliasing mode.
|
||||||
* @function Render.setAntialiasingMode
|
* @function Render.setAntialiasingMode
|
||||||
* @param {integer} the active anti-aliasing mode.
|
* @param {AntialiasingMode} the active anti-aliasing mode.
|
||||||
*/
|
*/
|
||||||
void setAntialiasingMode(AntialiasingConfig::Mode mode);
|
void setAntialiasingMode(AntialiasingConfig::Mode mode);
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
//
|
//
|
||||||
// Created by Raffi Bedikian on 8/30/15
|
// Created by Raffi Bedikian on 8/30/15
|
||||||
// Copyright 2015 High Fidelity, Inc.
|
// Copyright 2015 High Fidelity, Inc.
|
||||||
|
// Copyright 2022 Overte e.V.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
@ -109,6 +110,20 @@ class AntialiasingConfig : public render::Job::Config {
|
||||||
public:
|
public:
|
||||||
AntialiasingConfig() : render::Job::Config(true) {}
|
AntialiasingConfig() : render::Job::Config(true) {}
|
||||||
|
|
||||||
|
/*@jsdoc
|
||||||
|
*Antialiasing modes. <table>
|
||||||
|
* <thead>
|
||||||
|
* <tr><th>Value</th><th>Name</th><th>Description</th>
|
||||||
|
* </thead>
|
||||||
|
* <tbody>
|
||||||
|
* <tr><td><code>0</code></td><td>NONE</td><td>Antialiasing is disabled.</td></tr>
|
||||||
|
* <tr><td><code>1</code></td><td>TAA</td><td>Temporal Antialiasing.</td></tr>
|
||||||
|
* <tr><td><code>2</code></td><td>FXAA</td><td>FXAA.</td></tr>
|
||||||
|
* <tr><td><code>3</code></td><td>MODE_COUNT</td><td>Inducates number of antialiasing modes</td></tr>
|
||||||
|
* </tbody>
|
||||||
|
* </table>
|
||||||
|
* @typedef {number} AntialiasingMode
|
||||||
|
*/
|
||||||
enum Mode {
|
enum Mode {
|
||||||
NONE = 0,
|
NONE = 0,
|
||||||
TAA,
|
TAA,
|
||||||
|
|
|
@ -575,17 +575,13 @@ static ScriptValue createScriptableResourcePrototype(ScriptManagerPointer manage
|
||||||
auto engine = manager->engine();
|
auto engine = manager->engine();
|
||||||
auto prototype = engine->newObject();
|
auto prototype = engine->newObject();
|
||||||
|
|
||||||
// Expose enum State to JS/QML via properties
|
auto state = engine->newObject();
|
||||||
QObject* state = new QObject(manager.get());
|
|
||||||
state->setObjectName("ResourceState");
|
|
||||||
auto metaEnum = QMetaEnum::fromType<ScriptableResource::State>();
|
auto metaEnum = QMetaEnum::fromType<ScriptableResource::State>();
|
||||||
for (int i = 0; i < metaEnum.keyCount(); ++i) {
|
for (int i = 0; i < metaEnum.keyCount(); ++i) {
|
||||||
state->setProperty(metaEnum.key(i), metaEnum.value(i));
|
state.setProperty(metaEnum.key(i), metaEnum.value(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
auto prototypeState = engine->newQObject(state, ScriptEngine::QtOwnership,
|
prototype.setProperty("State", state);
|
||||||
ScriptEngine::ExcludeSlots | ScriptEngine::ExcludeSuperClassMethods);
|
|
||||||
prototype.setProperty("State", prototypeState);
|
|
||||||
|
|
||||||
return prototype;
|
return prototype;
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,6 @@ void ScriptEngineQtScript::registerCustomType(int type,
|
||||||
CustomMarshal& customType = _customTypes.insert(type, CustomMarshal()).value();
|
CustomMarshal& customType = _customTypes.insert(type, CustomMarshal()).value();
|
||||||
customType.demarshalFunc = demarshalFunc;
|
customType.demarshalFunc = demarshalFunc;
|
||||||
customType.marshalFunc = marshalFunc;
|
customType.marshalFunc = marshalFunc;
|
||||||
qDebug() << "registerCustomType: " << QMetaType(type).name() << " type: " << type << " map size: " << _customTypes.size();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(ScriptValue);
|
Q_DECLARE_METATYPE(ScriptValue);
|
||||||
|
|
|
@ -134,7 +134,6 @@ void ScriptObjectQtProxy::investigate() {
|
||||||
if (!qobject) return;
|
if (!qobject) return;
|
||||||
|
|
||||||
const QMetaObject* metaObject = qobject->metaObject();
|
const QMetaObject* metaObject = qobject->metaObject();
|
||||||
qDebug() << "ScriptObjectQtProxy::investigate: " << metaObject->className();
|
|
||||||
|
|
||||||
// discover properties
|
// discover properties
|
||||||
int startIdx = _wrapOptions & ScriptEngine::ExcludeSuperClassProperties ? metaObject->propertyOffset() : 0;
|
int startIdx = _wrapOptions & ScriptEngine::ExcludeSuperClassProperties ? metaObject->propertyOffset() : 0;
|
||||||
|
|
Loading…
Reference in a new issue