Merge branch 'feature/FXAA' of https://github.com/OpenSpace/OpenSpace into feature/FXAA

This commit is contained in:
Jonathas Costa
2019-08-21 11:25:42 -04:00
3 changed files with 34 additions and 3 deletions
+13
View File
@@ -1038,6 +1038,19 @@ void setSgctDelegateFunctions() {
sgct::SGCTWindow* w = sgct::Engine::instance()->getWindowPtr(0);
w->setHorizFieldOfView(hFovDeg);
};
sgctDelegate.frustumMode = []() {
using FM = sgct_core::Frustum::FrustumMode;
switch (sgct::Engine::instance()->getCurrentFrustumMode()) {
case FM::MonoEye: return WindowDelegate::Frustum::Mono;
case FM::StereoLeftEye: return WindowDelegate::Frustum::LeftEye;
case FM::StereoRightEye: return WindowDelegate::Frustum::RightEye;
}
};
sgctDelegate.swapGroupFrameNumber = []() {
unsigned int fn = 0;
sgct::Engine::instance()->getCurrentWindowPtr()->getSwapGroupFrameNumber(fn);
return static_cast<uint64_t>(fn);
};
}
int main(int argc, char** argv) {
@@ -32,6 +32,8 @@
namespace openspace {
struct WindowDelegate {
enum class Frustum { Mono, LeftEye, RightEye };
void (*terminate)() = [](){};
void (*setBarrier)(bool enabled) = [](bool) {};
@@ -121,6 +123,10 @@ struct WindowDelegate {
GLProcAddress (*openGLProcedureAddress)(const char*) =
[](const char*) -> GLProcAddress { return []() {}; };
Frustum (*frustumMode)() = []() { return Frustum::Mono; };
uint64_t (*swapGroupFrameNumber)() = []() { return uint64_t(0); };
};
} // namespace openspace
+15 -3
View File
@@ -654,15 +654,25 @@ void RenderEngine::render(const glm::mat4& sceneMatrix, const glm::mat4& viewMat
);
std::string fn = std::to_string(_frameNumber);
WindowDelegate::Frustum frustum = global::windowDelegate.frustumMode();
std::string fr = [](WindowDelegate::Frustum frustum) -> std::string {
switch (frustum) {
case WindowDelegate::Frustum::Mono: return "";
case WindowDelegate::Frustum::LeftEye: return "(left)";
case WindowDelegate::Frustum::RightEye: return "(right)";
}
}(frustum);
std::string sgFn = std::to_string(global::windowDelegate.swapGroupFrameNumber());
std::string dt = std::to_string(global::windowDelegate.deltaTime());
std::string avgDt = std::to_string(global::windowDelegate.averageDeltaTime());
std::string res = "Frame: " + fn + '\n' + "Dt: " + dt + '\n' + "Avg Dt: " + avgDt;
std::string res = "Frame: " + fn + ' ' + fr + '\n' +
"Swap group frame: " + sgFn + '\n' +
"Dt: " + dt + '\n' + "Avg Dt: " + avgDt;
RenderFont(*_fontFrameInfo, penPosition, res);
}
++_frameNumber;
if (masterEnabled && !delegate.isGuiWindow() && _globalBlackOutFactor > 0.f) {
std::vector<ScreenSpaceRenderable*> ssrs;
ssrs.reserve(global::screenSpaceRenderables.size());
@@ -844,6 +854,8 @@ void RenderEngine::renderDashboard() {
}
void RenderEngine::postDraw() {
++_frameNumber;
if (_shouldTakeScreenshot) {
// We only create the directory here, as we don't want to spam the users
// screenshot folder everytime we start OpenSpace even when we are not taking any