Enable render global frame number and add as global property

This commit is contained in:
Erik Broberg
2016-09-02 18:23:44 -04:00
parent 46107cc23f
commit d59156e81b
4 changed files with 36 additions and 2 deletions

View File

@@ -46,9 +46,11 @@ public:
private:
void initEyeSeparation();
void initSceneFiles();
void initShowFrameNumber();
properties::FloatProperty _eyeSeparation;
properties::OptionProperty _scenes;
properties::BoolProperty _showFrameNumber;
};
} // namespace openspace

View File

@@ -117,7 +117,7 @@ public:
float globalBlackOutFactor();
void setGlobalBlackOutFactor(float factor);
void setNAaSamples(int nAaSamples);
void setShowFrameNumber(bool enabled);
void setDisableRenderingOnMaster(bool enabled);
@@ -214,16 +214,19 @@ private:
bool _showInfo;
bool _showLog;
bool _takeScreenshot;
bool _showFrameNumber;
float _globalBlackOutFactor;
float _fadeDuration;
float _currentFadeTime;
int _fadeDirection;
int _nAaSamples;
unsigned int _frameNumber;
std::vector<ghoul::opengl::ProgramObject*> _programs;
std::vector<std::shared_ptr<ScreenSpaceRenderable>> _screenSpaceRenderables;
std::shared_ptr<ghoul::fontrendering::Font> _fontBig = nullptr;
std::shared_ptr<ghoul::fontrendering::Font> _fontInfo = nullptr;
std::shared_ptr<ghoul::fontrendering::Font> _fontDate = nullptr;
std::shared_ptr<ghoul::fontrendering::Font> _fontLog = nullptr;

View File

@@ -38,6 +38,7 @@ 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)
{
setName("Global Properties");
}
@@ -45,6 +46,7 @@ SettingsEngine::SettingsEngine()
void SettingsEngine::initialize() {
initEyeSeparation();
initSceneFiles();
initShowFrameNumber();
}
void SettingsEngine::setModules(std::vector<OpenSpaceModule*> modules) {
@@ -61,6 +63,13 @@ void SettingsEngine::initEyeSeparation() {
[this]() { OsEng.windowWrapper().setEyeSeparationDistance(_eyeSeparation); });
}
void SettingsEngine::initShowFrameNumber() {
addProperty(_showFrameNumber);
_showFrameNumber.onChange(
[this]() { OsEng.renderEngine().setShowFrameNumber(_showFrameNumber.value()); } );
}
void SettingsEngine::initSceneFiles() {
addProperty(_scenes);

View File

@@ -128,6 +128,7 @@ RenderEngine::RenderEngine()
, _fadeDuration(2.f)
, _currentFadeTime(0.f)
, _fadeDirection(0)
, _frameNumber(0)
, _frametimeType(FrametimeType::DtTimeAvg)
// , _sgctRenderStatisticsVisible(false)
{
@@ -180,6 +181,7 @@ void RenderEngine::setRendererFromString(const std::string& renderingMethod) {
}
bool RenderEngine::initialize() {
_frameNumber = 0;
std::string renderingMethod = DefaultRenderingMethod;
// If the user specified a rendering method that he would like to use, use that
@@ -228,6 +230,7 @@ bool RenderEngine::initialize() {
MissionManager::initialize();
#endif
return true;
}
@@ -240,6 +243,8 @@ bool RenderEngine::initializeGL() {
OsEng.windowWrapper().setNearFarClippingPlane(0.001f, 1000.f);
try {
const float fontSizeBig = 50.f;
_fontBig = OsEng.fontManager().font(KeyFontMono, fontSizeBig);
const float fontSizeTime = 15.f;
_fontDate = OsEng.fontManager().font(KeyFontMono, fontSizeTime);
const float fontSizeMono = 10.f;
@@ -409,7 +414,6 @@ void RenderEngine::postSynchronizationPreDraw() {
//}
}
void RenderEngine::render(const glm::mat4& projectionMatrix, const glm::mat4& viewMatrix){
_mainCamera->sgctInternal.setViewMatrix(viewMatrix);
_mainCamera->sgctInternal.setProjectionMatrix(projectionMatrix);
@@ -424,6 +428,18 @@ void RenderEngine::render(const glm::mat4& projectionMatrix, const glm::mat4& vi
renderInformation();
}
}
glm::vec2 penPosition = glm::vec2(
OsEng.windowWrapper().viewportPixelCoordinates().y / 2 - 50,
OsEng.windowWrapper().viewportPixelCoordinates().w / 3
);
if(_showFrameNumber) {
RenderFontCr(*_fontBig, penPosition, "%i", _frameNumber);
}
_frameNumber++;
for (auto screenSpaceRenderable : _screenSpaceRenderables) {
if (screenSpaceRenderable->isEnabled() && screenSpaceRenderable->isReady())
@@ -1205,6 +1221,10 @@ void RenderEngine::changeViewPoint(std::string origin) {
LFATAL("This function is being misused with an argument of '" << origin << "'");
}
void RenderEngine::setShowFrameNumber(bool enabled){
_showFrameNumber = enabled;
}
void RenderEngine::setDisableRenderingOnMaster(bool enabled) {
_disableMasterRendering = enabled;
}