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:
Alexander Bock
2016-11-06 22:15:52 +01:00
parent c469be26c3
commit 572257d3b0
9 changed files with 45 additions and 77 deletions

View File

@@ -51,8 +51,8 @@ public:
};
enum class DisplayType {
RADIO,
DROPDOWN
Radio,
Dropdown
};
/**

View File

@@ -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;

View File

@@ -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';

View File

@@ -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();")

View File

@@ -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")

View File

@@ -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)

View File

@@ -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 <<

View File

@@ -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,

View File

@@ -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):