mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-24 21:18:32 -05:00
Steps towards moving dedicated lua functions into properties
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user