mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-05-01 16:29:43 -05:00
Merge branch 'feature/FXAA' of https://github.com/OpenSpace/OpenSpace into feature/FXAA
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user