Steps towards moving dedicated lua functions into properties

This commit is contained in:
Alexander Bock
2017-02-28 23:15:11 -05:00
parent 6694cfd98c
commit 3e2c56c940
5 changed files with 41 additions and 130 deletions
@@ -52,14 +52,12 @@ public:
private:
void initEyeSeparation();
void initSceneFiles();
void initShowFrameNumber();
void initBusyWaitForDecode();
void initLogSGCTOutOfOrderErrors();
void initUseDoubleBuffering();
properties::FloatProperty _eyeSeparation;
properties::OptionProperty _scenes;
properties::BoolProperty _showFrameNumber;
properties::BoolProperty _busyWaitForDecode;
properties::BoolProperty _logSGCTOutOfOrderErrors;
properties::BoolProperty _useDoubleBuffering;
+11 -13
View File
@@ -29,7 +29,9 @@
#include <openspace/properties/optionproperty.h>
#include <openspace/properties/propertyowner.h>
#include <openspace/properties/triggerproperty.h>
#include <openspace/properties/scalar/boolproperty.h>
#include <openspace/properties/scalar/intproperty.h>
#include <openspace/util/syncdata.h>
@@ -102,17 +104,12 @@ public:
void renderShutdownInformation(float timer, float fullTime);
void postDraw();
void takeScreenshot(bool applyWarping = false);
void toggleInfoText(bool b);
// Performance measurements
bool doesPerformanceMeasurements() const;
performance::PerformanceManager* performanceManager();
float globalBlackOutFactor();
void setGlobalBlackOutFactor(float factor);
void setNAaSamples(int nAaSamples);
void setShowFrameNumber(bool enabled);
void setDisableRenderingOnMaster(bool enabled);
@@ -203,17 +200,20 @@ private:
//FrametimeType _frametimeType;
bool _showInfo;
bool _showLog;
bool _takeScreenshot;
bool _applyWarping;
bool _showFrameNumber;
properties::BoolProperty _showInfo;
properties::BoolProperty _showLog;
properties::TriggerProperty _takeScreenshot;
bool _shouldTakeScreenshot;
properties::BoolProperty _applyWarping;
properties::BoolProperty _showFrameNumber;
properties::BoolProperty _disableMasterRendering;
float _globalBlackOutFactor;
float _fadeDuration;
float _currentFadeTime;
int _fadeDirection;
int _nAaSamples;
properties::IntProperty _nAaSamples;
uint64_t _frameNumber;
std::vector<ghoul::opengl::ProgramObject*> _programs;
@@ -223,8 +223,6 @@ private:
std::shared_ptr<ghoul::fontrendering::Font> _fontInfo = nullptr;
std::shared_ptr<ghoul::fontrendering::Font> _fontDate = nullptr;
std::shared_ptr<ghoul::fontrendering::Font> _fontLog = nullptr;
bool _disableMasterRendering = false;
};
} // namespace openspace
-9
View File
@@ -48,7 +48,6 @@ namespace openspace {
SettingsEngine::SettingsEngine()
: _eyeSeparation("eyeSeparation", "Eye Separation" , 0.f, 0.f, 10.f)
, _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)
, _useDoubleBuffering("useDoubleBuffering", "Use double buffering", false)
@@ -70,7 +69,6 @@ SettingsEngine::SettingsEngine()
void SettingsEngine::initialize() {
initEyeSeparation();
initSceneFiles();
initShowFrameNumber();
initBusyWaitForDecode();
initLogSGCTOutOfOrderErrors();
initUseDoubleBuffering();
@@ -90,13 +88,6 @@ void SettingsEngine::initEyeSeparation() {
[this]() { OsEng.windowWrapper().setEyeSeparationDistance(_eyeSeparation); });
}
void SettingsEngine::initShowFrameNumber() {
addProperty(_showFrameNumber);
_showFrameNumber.onChange(
[this]() { OsEng.renderEngine().setShowFrameNumber(_showFrameNumber.value()); } );
}
void SettingsEngine::initBusyWaitForDecode() {
addProperty(_busyWaitForDecode);
_busyWaitForDecode.onChange(
+30 -47
View File
@@ -99,15 +99,19 @@ RenderEngine::RenderEngine()
"Type of the frametime display",
properties::OptionProperty::DisplayType::Dropdown
)
, _showInfo("showInfo", "Show Render Information", true)
, _showLog("showLog", "Show the OnScreen log", true)
, _nAaSamples("nAaSamples", "Number of Antialiasing samples", 8, 1, 16)
, _applyWarping("applyWarpingScreenshot", "Apply Warping to Screenshots", false)
, _takeScreenshot("takeScreenshot", "Take Screenshot")
, _showFrameNumber("showFrameNumber", "Show Frame Number", false)
, _disableMasterRendering("disableMasterRendering", "Disable Master Rendering", false)
, _shouldTakeScreenshot(false)
, _sceneGraph(nullptr)
, _renderer(nullptr)
, _rendererImplementation(RendererImplementation::Invalid)
, _performanceManager(nullptr)
, _log(nullptr)
, _showInfo(true)
, _showLog(true)
, _takeScreenshot(false)
, _showFrameNumber(false)
, _globalBlackOutFactor(1.f)
, _fadeDuration(2.f)
, _currentFadeTime(0.f)
@@ -142,6 +146,26 @@ RenderEngine::RenderEngine()
"Average frames per second"
);
addProperty(_frametimeType);
addProperty(_showInfo);
addProperty(_showLog);
_nAaSamples.onChange([this](){
if (_renderer) {
_renderer->setNAaSamples(_nAaSamples);
}
});
addProperty(_nAaSamples);
addProperty(_applyWarping);
_takeScreenshot.onChange([this](){
_shouldTakeScreenshot = true;
});
addProperty(_takeScreenshot);
addProperty(_showFrameNumber);
addProperty(_disableMasterRendering);
}
RenderEngine::~RenderEngine() {
@@ -519,9 +543,9 @@ void RenderEngine::postDraw() {
Time::ref().setTimeJumped(false);
}
if (_takeScreenshot) {
if (_shouldTakeScreenshot) {
OsEng.windowWrapper().takeScreenshot(_applyWarping);
_takeScreenshot = false;
_shouldTakeScreenshot = false;
}
if (_performanceManager) {
@@ -529,15 +553,6 @@ void RenderEngine::postDraw() {
}
}
void RenderEngine::takeScreenshot(bool applyWarping) {
_takeScreenshot = true;
_applyWarping = applyWarping;
}
void RenderEngine::toggleInfoText(bool b) {
_showInfo = b;
}
Scene* RenderEngine::scene() {
ghoul_assert(_sceneGraph, "Scenegraph not initialized");
return _sceneGraph;
@@ -716,44 +731,16 @@ void RenderEngine::setRenderer(std::unique_ptr<Renderer> renderer) {
_renderer->setScene(_sceneGraph);
}
void RenderEngine::setNAaSamples(int nAaSamples) {
_nAaSamples = nAaSamples;
if (_renderer) {
_renderer->setNAaSamples(_nAaSamples);
}
}
scripting::LuaLibrary RenderEngine::luaLibrary() {
return {
"",
{
{
"takeScreenshot",
&luascriptfunctions::takeScreenshot,
"(optional bool)",
"Renders the current image to a file on disk. If the boolean parameter "
"is set to 'true', the screenshot will include the blending and the "
"meshes. If it is 'false', the straight FBO will be recorded."
},
{
"setRenderer",
&luascriptfunctions::setRenderer,
"string",
"Sets the renderer (ABuffer or FrameBuffer)"
},
{
"setNAaSamples",
&luascriptfunctions::setNAaSamples,
"int",
"Sets the number of anti-aliasing (MSAA) samples"
},
{
"showRenderInformation",
&luascriptfunctions::showRenderInformation,
"bool",
"Toggles the showing of render information on-screen text"
},
{
"toggleFade",
&luascriptfunctions::toggleFade,
@@ -797,10 +784,6 @@ performance::PerformanceManager* RenderEngine::performanceManager() {
return _performanceManager.get();
}
void RenderEngine::setShowFrameNumber(bool enabled){
_showFrameNumber = enabled;
}
void RenderEngine::setDisableRenderingOnMaster(bool enabled) {
_disableMasterRendering = enabled;
}
-59
View File
@@ -26,27 +26,6 @@ namespace openspace {
namespace luascriptfunctions {
/**
* \ingroup LuaScripts
* takeScreenshot():
* Save the rendering to an image file
*/
int takeScreenshot(lua_State* L) {
int nArguments = lua_gettop(L);
if (nArguments == 0) {
OsEng.renderEngine().takeScreenshot();
return 0;
}
else if (nArguments == 1) {
bool b = lua_toboolean(L, -1) != 0;
OsEng.renderEngine().takeScreenshot(b);
return 0;
}
else {
return luaL_error(L, "Expected %i or %i arguments, got %i", 0, 1, nArguments);
}
}
/**
* \ingroup LuaScripts
* setRenderer(string):
@@ -67,44 +46,6 @@ int setRenderer(lua_State* L) {
return 0;
}
/**
* \ingroup LuaScripts
* setNAaSamples(int):
* set the number of anti-aliasing samples (msaa)
*/
int setNAaSamples(lua_State* L) {
int nArguments = lua_gettop(L);
if (nArguments != 1) {
return luaL_error(L, "Expected %i arguments, got %i", 1, nArguments);
}
double t = luaL_checknumber(L, -1);
OsEng.renderEngine().setNAaSamples(static_cast<int>(t));
return 0;
}
/**
* \ingroup LuaScripts
* visualizeABuffer(bool):
* Toggle heads-up info display on master node
*/
int showRenderInformation(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_TBOOLEAN) {
return luaL_error(L, "Expected argument of type 'bool'");
}
bool b = lua_toboolean(L, -1) != 0;
OsEng.renderEngine().toggleInfoText(b);
return 0;
}
/**
* \ingroup LuaScripts
* toggleFade(float):