mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-24 22:09:10 -06:00
Move the rendertime into a property and remove the toggleFrametimeType
Make OptionProperty work in Radio mode Rename DROPDOWN and RADIO to Dropdown and Radio
This commit is contained in:
@@ -51,8 +51,8 @@ public:
|
||||
};
|
||||
|
||||
enum class DisplayType {
|
||||
RADIO,
|
||||
DROPDOWN
|
||||
Radio,
|
||||
Dropdown
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
#include <openspace/scripting/scriptengine.h>
|
||||
|
||||
#include <openspace/properties/optionproperty.h>
|
||||
#include <openspace/properties/propertyowner.h>
|
||||
#include <openspace/properties/scalarproperty.h>
|
||||
|
||||
@@ -112,7 +113,6 @@ public:
|
||||
|
||||
void takeScreenshot(bool applyWarping = false);
|
||||
void toggleInfoText(bool b);
|
||||
void toggleFrametimeType(int t);
|
||||
|
||||
// Performance measurements
|
||||
bool doesPerformanceMeasurements() const;
|
||||
@@ -213,7 +213,9 @@ private:
|
||||
ghoul::Dictionary _resolveData;
|
||||
ScreenLog* _log;
|
||||
|
||||
FrametimeType _frametimeType;
|
||||
properties::OptionProperty _frametimeType;
|
||||
|
||||
//FrametimeType _frametimeType;
|
||||
|
||||
bool _showInfo;
|
||||
bool _showLog;
|
||||
|
||||
@@ -72,16 +72,16 @@ void renderOptionProperty(Property* prop, const std::string& ownerName) {
|
||||
int value = *p;
|
||||
std::vector<OptionProperty::Option> options = p->options();
|
||||
switch (p->displayType()) {
|
||||
case OptionProperty::DisplayType::RADIO: {
|
||||
case OptionProperty::DisplayType::Radio: {
|
||||
ImGui::Text(name.c_str());
|
||||
ImGui::Separator();
|
||||
for (const OptionProperty::Option& o : options) {
|
||||
ImGui::RadioButton(name.c_str(), &value, o.value);
|
||||
ImGui::SameLine();
|
||||
ImGui::Text(o.description.c_str());
|
||||
ImGui::RadioButton(o.description.c_str(), &value, o.value);
|
||||
renderTooltip(prop);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case OptionProperty::DisplayType::DROPDOWN: {
|
||||
case OptionProperty::DisplayType::Dropdown: {
|
||||
std::string nodeNames = "";
|
||||
for (const OptionProperty::Option& o : options) {
|
||||
nodeNames += o.description + '\0';
|
||||
|
||||
@@ -18,19 +18,3 @@ helper.setDeltaTimeKeys({
|
||||
2592000, 5184000, 7776000, 15552000, 31536000, 63072000, 157680000, 315360000, 630720000, 1576800000
|
||||
})
|
||||
-- OBS: One month (1mo) is approximated by 30 days.
|
||||
|
||||
|
||||
openspace.bindKey("q", helper.renderable.toggle('SunMarker'))
|
||||
openspace.bindKey("e", helper.renderable.toggle('EarthMarker'))
|
||||
openspace.bindKey("x", helper.renderable.toggle('Constellation Bounds'))
|
||||
|
||||
--openspace.bindKey("c", "openspace.parallel.setAddress('130.236.142.51');openspace.parallel.setPassword('newhorizons-20150714');openspace.parallel.connect();")
|
||||
|
||||
--openspace.bindKey("h", "openspace.iswa.setBaseUrl('https://iswa-demo-server.herokuapp.com/')");
|
||||
openspace.bindKey("g", "openspace.iswa.setBaseUrl('http://128.183.168.116:3000/')");
|
||||
openspace.bindKey("l", "openspace.iswa.setBaseUrl('http://localhost:3000/')");
|
||||
|
||||
openspace.bindKey("v", "openspace.time.setTime('2015-03-15T02:00:00.00')");
|
||||
|
||||
openspace.bindKeyLocal("h", "openspace.parallel.setAddress('127.0.0.1');openspace.parallel.setPort('25001');openspace.parallel.setPassword('test');openspace.parallel.connect();openspace.parallel.requestHostship('test');")
|
||||
openspace.bindKeyLocal("c", "openspace.parallel.setAddress('127.0.0.1');openspace.parallel.setPort('25001');openspace.parallel.setPassword('test');openspace.parallel.connect();")
|
||||
|
||||
@@ -23,9 +23,6 @@ helper.setCommonKeys = function()
|
||||
"Toogles performance measurements that shows rendering time informations"
|
||||
)
|
||||
|
||||
openspace.bindKeyLocal("t", "openspace.toggleFrametimeType(1)")
|
||||
openspace.bindKeyLocal("Shift+t", "openspace.toggleFrametimeType(0)")
|
||||
|
||||
openspace.bindKeyLocal("ESC", "openspace.toggleShutdown()")
|
||||
|
||||
openspace.bindKeyLocal("PRINT_SCREEN", "openspace.takeScreenshot()")
|
||||
@@ -73,7 +70,7 @@ end
|
||||
helper.property.increment = function(property, value)
|
||||
local v = value or 1
|
||||
local escaped_property = "'" .. property .. "'"
|
||||
return "openspace.setPropertyValue(" .. escaped_property .. ", openspace.getPropertyValue(" .. escaped_property .. ") + " .. v .. ")"
|
||||
return "openspace.setPropertyValue(" .. escaped_property .. ", openspace.getPropertyValue(" .. escaped_property .. ") + " .. v .. ");"
|
||||
end
|
||||
|
||||
-- Function that returns the string that decrements the 'property' by the 'value'
|
||||
@@ -81,6 +78,12 @@ helper.property.decrement = function(property, value)
|
||||
return helper.property.increment(property, -value)
|
||||
end
|
||||
|
||||
-- Function that sets a property to a specify value
|
||||
helper.property.set = function(property, value)
|
||||
local escaped_property = "'" .. property .. "'"
|
||||
return "openspace.setPropertyValue(" .. escaped_property .. ", " .. value .. ");"
|
||||
end
|
||||
|
||||
-- Function that returns the string that enables/disables the renderable 'renderable'
|
||||
helper.renderable.toggle = function(renderable)
|
||||
return helper.property.invert(renderable .. ".renderable.enabled")
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace openspace {
|
||||
|
||||
SettingsEngine::SettingsEngine()
|
||||
: _eyeSeparation("eyeSeparation", "Eye Separation" , 0.f, 0.f, 10.f)
|
||||
, _scenes("scenes", "Scene", properties::OptionProperty::DisplayType::DROPDOWN)
|
||||
, _scenes("scenes", "Scene", properties::OptionProperty::DisplayType::Dropdown)
|
||||
, _showFrameNumber("showFrameNumber", "Show frame number", false)
|
||||
, _busyWaitForDecode("busyWaitForDecode", "Busy Wait for decode", false)
|
||||
, _logSGCTOutOfOrderErrors("logSGCTOutOfOrderErrors", "Log SGCT out-of-order", false)
|
||||
|
||||
@@ -35,7 +35,7 @@ const std::string OptionProperty::OptionsKey = "Options";
|
||||
|
||||
OptionProperty::OptionProperty(std::string identifier, std::string guiName)
|
||||
: IntProperty(std::move(identifier), std::move(guiName))
|
||||
, _displayType(DisplayType::RADIO)
|
||||
, _displayType(DisplayType::Radio)
|
||||
{}
|
||||
|
||||
OptionProperty::OptionProperty(std::string identifier, std::string guiName, DisplayType displayType)
|
||||
@@ -61,7 +61,7 @@ void OptionProperty::addOption(int value, std::string desc) {
|
||||
option.value = value;
|
||||
option.description = desc;
|
||||
|
||||
for (auto o : _options) {
|
||||
for (const auto& o : _options) {
|
||||
if (o.value == option.value) {
|
||||
LWARNING("The value of option {" << o.value << " -> " << o.description <<
|
||||
"} was already registered when trying to add option {" << option.value <<
|
||||
|
||||
@@ -114,10 +114,15 @@ const std::vector<RenderEngine::FrametimeType> RenderEngine::FrametimeTypes({
|
||||
|
||||
RenderEngine::RenderEngine()
|
||||
: _mainCamera(nullptr)
|
||||
, _performanceMeasurements("performanceMeasurements", "Performance Measurements")
|
||||
, _frametimeType(
|
||||
"frametimeType",
|
||||
"Type of the frametime display",
|
||||
properties::OptionProperty::DisplayType::Dropdown
|
||||
)
|
||||
, _sceneGraph(nullptr)
|
||||
, _renderer(nullptr)
|
||||
, _rendererImplementation(RendererImplementation::Invalid)
|
||||
, _performanceMeasurements("performanceMeasurements", "Performance Measurements")
|
||||
, _performanceManager(nullptr)
|
||||
, _log(nullptr)
|
||||
, _showInfo(true)
|
||||
@@ -129,7 +134,7 @@ RenderEngine::RenderEngine()
|
||||
, _currentFadeTime(0.f)
|
||||
, _fadeDirection(0)
|
||||
, _frameNumber(0)
|
||||
, _frametimeType(FrametimeType::DtTimeAvg)
|
||||
//, _frametimeType(FrametimeType::DtTimeAvg)
|
||||
{
|
||||
setName("RenderEngine");
|
||||
|
||||
@@ -143,10 +148,22 @@ RenderEngine::RenderEngine()
|
||||
_performanceManager = nullptr;
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
});
|
||||
addProperty(_performanceMeasurements);
|
||||
|
||||
_frametimeType.addOption(
|
||||
static_cast<int>(FrametimeType::DtTimeAvg),
|
||||
"Average Deltatime"
|
||||
);
|
||||
_frametimeType.addOption(
|
||||
static_cast<int>(FrametimeType::FPS),
|
||||
"Frames per second"
|
||||
);
|
||||
_frametimeType.addOption(
|
||||
static_cast<int>(FrametimeType::FPSAvg),
|
||||
"Average frames per second"
|
||||
);
|
||||
addProperty(_frametimeType);
|
||||
}
|
||||
|
||||
RenderEngine::~RenderEngine() {
|
||||
@@ -527,21 +544,6 @@ void RenderEngine::toggleInfoText(bool b) {
|
||||
_showInfo = b;
|
||||
}
|
||||
|
||||
void RenderEngine::toggleFrametimeType(int t) {
|
||||
std::vector<FrametimeType>::const_iterator it = std::find(
|
||||
FrametimeTypes.begin(), FrametimeTypes.end(), _frametimeType);
|
||||
|
||||
if (!t && it == FrametimeTypes.begin())
|
||||
it = FrametimeTypes.end();
|
||||
|
||||
t > 0 ? ++it : --it;
|
||||
|
||||
if (t && it == FrametimeTypes.end())
|
||||
it = FrametimeTypes.begin();
|
||||
|
||||
_frametimeType = *it;
|
||||
}
|
||||
|
||||
Scene* RenderEngine::scene() {
|
||||
ghoul_assert(_sceneGraph, "Scenegraph not initialized");
|
||||
return _sceneGraph;
|
||||
@@ -771,12 +773,6 @@ scripting::LuaLibrary RenderEngine::luaLibrary() {
|
||||
"bool",
|
||||
"Toggles the showing of render information on-screen text"
|
||||
},
|
||||
{
|
||||
"toggleFrametimeType",
|
||||
&luascriptfunctions::toggleFrametimeType,
|
||||
"int",
|
||||
"Toggle showing FPS or Average Frametime in heads up info"
|
||||
},
|
||||
{
|
||||
"toggleFade",
|
||||
&luascriptfunctions::toggleFade,
|
||||
@@ -1313,7 +1309,8 @@ void RenderEngine::renderInformation() {
|
||||
Time::ref().deltaTime()
|
||||
);
|
||||
|
||||
switch (_frametimeType) {
|
||||
FrametimeType frametimeType = FrametimeType(_frametimeType.value());
|
||||
switch (frametimeType) {
|
||||
case FrametimeType::DtTimeAvg:
|
||||
RenderFontCr(*_fontInfo,
|
||||
penPosition,
|
||||
|
||||
@@ -105,24 +105,6 @@ int showRenderInformation(lua_State* L) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* \ingroup LuaScripts
|
||||
* toggleFramerateType(bool):
|
||||
* Cycle through showing FPS or Average Frametime in heads up info
|
||||
*/
|
||||
int toggleFrametimeType(lua_State* L) {
|
||||
int nArguments = lua_gettop(L);
|
||||
if (nArguments != 1)
|
||||
return luaL_error(L, "Expected %i arguments, got %i", 1, nArguments);
|
||||
|
||||
const int type = lua_type(L, -1);
|
||||
if (type != LUA_TNUMBER)
|
||||
return luaL_error(L, "Expected argument of type 'number'");
|
||||
int t = lua_tonumber(L, -1);
|
||||
OsEng.renderEngine().toggleFrametimeType(t);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* \ingroup LuaScripts
|
||||
* toggleFade(float):
|
||||
|
||||
Reference in New Issue
Block a user