From 73a7d1b63b41ffddeaaab29f89f4c0653e3d5531 Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Tue, 20 Sep 2016 10:15:27 -0700 Subject: [PATCH] redraw no-preview message if window size changes --- .../src/display-plugins/hmd/HmdDisplayPlugin.cpp | 14 ++++++++++++++ .../src/display-plugins/hmd/HmdDisplayPlugin.h | 1 + 2 files changed, 15 insertions(+) diff --git a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp index b0d7d9e3cf..a02600d971 100644 --- a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp @@ -249,6 +249,9 @@ void HmdDisplayPlugin::internalPresent() { if (getGLBackend()->isTextureReady(_previewTexture)) { auto viewport = getViewportForSourceSize(uvec2(_previewTexture->getDimensions())); + + qDebug() << "viewport:" << viewport.x << "," << viewport.y << "," << viewport.z << "," << viewport.w; + render([&](gpu::Batch& batch) { batch.enableStereo(false); batch.resetViewTransform(); @@ -265,6 +268,17 @@ void HmdDisplayPlugin::internalPresent() { } } postPreview(); + + // If preview is disabled, we need to check to see if the window size has changed + // and re-render the no-preview message + if (_disablePreview) { + auto window = _container->getPrimaryWidget(); + glm::vec2 windowSize = toGlm(window->size()); + if (windowSize != _lastWindowSize) { + _clearPreviewFlag = true; + _lastWindowSize = windowSize; + } + } } // HMD specific stuff diff --git a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.h b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.h index 1c10706453..08db3d7993 100644 --- a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.h +++ b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.h @@ -108,6 +108,7 @@ private: bool _monoPreview { true }; bool _clearPreviewFlag { false }; gpu::TexturePointer _previewTexture; + glm::vec2 _lastWindowSize; struct OverlayRenderer { gpu::Stream::FormatPointer format;