diff --git a/libraries/display-plugins/src/display-plugins/CompositorHelper.h b/libraries/display-plugins/src/display-plugins/CompositorHelper.h index 44c769c965..ebc0171752 100644 --- a/libraries/display-plugins/src/display-plugins/CompositorHelper.h +++ b/libraries/display-plugins/src/display-plugins/CompositorHelper.h @@ -145,7 +145,7 @@ private: float _fadeInAlpha { true }; float _oculusUIRadius { 1.0f }; - quint64 _fadeStarted { 0.0f }; + quint64 _fadeStarted { 0 }; float _fadeFailsafeEndValue { 1.0f }; void checkFadeFailsafe(); void startFadeFailsafe(float endValue); diff --git a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp index 3a111f7fc8..1c175b778c 100644 --- a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp @@ -410,27 +410,26 @@ void OpenGLDisplayPlugin::updateFramerate() { void OpenGLDisplayPlugin::compositeOverlay() { using namespace oglplus; - - // set the alpha auto compositorHelper = DependencyManager::get(); + + // check the alpha auto overlayAlpha = compositorHelper->getAlpha(); + if (overlayAlpha > 0.0f) { + // set the alpha + Uniform(*_program, _alphaUniform).Set(overlayAlpha); - if (overlayAlpha <= 0.0f) { - return; // don't render the overlay at all. - } - Uniform(*_program, _alphaUniform).Set(overlayAlpha); - - // Overlay draw - if (isStereo()) { - Uniform(*_program, _mvpUniform).Set(mat4()); - for_each_eye([&](Eye eye) { - eyeViewport(eye); - drawUnitQuad(); - }); - } else { // Overlay draw - Uniform(*_program, _mvpUniform).Set(mat4()); - drawUnitQuad(); + if (isStereo()) { + Uniform(*_program, _mvpUniform).Set(mat4()); + for_each_eye([&](Eye eye) { + eyeViewport(eye); + drawUnitQuad(); + }); + } else { + // Overlay draw + Uniform(*_program, _mvpUniform).Set(mat4()); + drawUnitQuad(); + } } Uniform(*_program, _alphaUniform).Set(1.0); } @@ -439,21 +438,21 @@ void OpenGLDisplayPlugin::compositePointer() { using namespace oglplus; auto compositorHelper = DependencyManager::get(); - // set the alpha + // check the alpha auto overlayAlpha = compositorHelper->getAlpha(); - if (overlayAlpha <= 0.0f) { - return; // don't render the overlay at all. - } - Uniform(*_program, _alphaUniform).Set(overlayAlpha); + if (overlayAlpha > 0.0f) { + // set the alpha + Uniform(*_program, _alphaUniform).Set(overlayAlpha); - Uniform(*_program, _mvpUniform).Set(compositorHelper->getReticleTransform(glm::mat4())); - if (isStereo()) { - for_each_eye([&](Eye eye) { - eyeViewport(eye); + Uniform(*_program, _mvpUniform).Set(compositorHelper->getReticleTransform(glm::mat4())); + if (isStereo()) { + for_each_eye([&](Eye eye) { + eyeViewport(eye); + drawUnitQuad(); + }); + } else { drawUnitQuad(); - }); - } else { - drawUnitQuad(); + } } Uniform(*_program, _mvpUniform).Set(mat4()); Uniform(*_program, _alphaUniform).Set(1.0); diff --git a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp index a053452c9b..e3d92d5761 100644 --- a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp @@ -62,53 +62,49 @@ void HmdDisplayPlugin::uncustomizeContext() { void HmdDisplayPlugin::compositeOverlay() { using namespace oglplus; - - // set the alpha auto compositorHelper = DependencyManager::get(); + + // check the alpha auto overlayAlpha = compositorHelper->getAlpha(); + if (overlayAlpha > 0.0f) { + // set the alpha + Uniform(*_program, _alphaUniform).Set(overlayAlpha); - if (overlayAlpha <= 0.0f) { - return; // don't render the overlay at all. + _sphereSection->Use(); + for_each_eye([&](Eye eye) { + eyeViewport(eye); + auto modelView = glm::inverse(_currentRenderEyePoses[eye]); // *glm::translate(mat4(), vec3(0, 0, -1)); + auto mvp = _eyeProjections[eye] * modelView; + Uniform(*_program, _mvpUniform).Set(mvp); + _sphereSection->Draw(); + }); } - Uniform(*_program, _alphaUniform).Set(overlayAlpha); - - - _sphereSection->Use(); - for_each_eye([&](Eye eye) { - eyeViewport(eye); - auto modelView = glm::inverse(_currentRenderEyePoses[eye]); // *glm::translate(mat4(), vec3(0, 0, -1)); - auto mvp = _eyeProjections[eye] * modelView; - Uniform(*_program, _mvpUniform).Set(mvp); - _sphereSection->Draw(); - }); Uniform(*_program, _alphaUniform).Set(1.0); } void HmdDisplayPlugin::compositePointer() { using namespace oglplus; - //Mouse Pointer - auto compositorHelper = DependencyManager::get(); - // set the alpha + // check the alpha auto overlayAlpha = compositorHelper->getAlpha(); - if (overlayAlpha <= 0.0f) { - return; // don't render the overlay at all. + if (overlayAlpha > 0.0f) { + // set the alpha + Uniform(*_program, _alphaUniform).Set(overlayAlpha); + + // Mouse pointer + _plane->Use(); + // Reconstruct the headpose from the eye poses + auto headPosition = (vec3(_currentRenderEyePoses[Left][3]) + vec3(_currentRenderEyePoses[Right][3])) / 2.0f; + for_each_eye([&](Eye eye) { + eyeViewport(eye); + auto reticleTransform = compositorHelper->getReticleTransform(_currentRenderEyePoses[eye], headPosition); + auto mvp = _eyeProjections[eye] * reticleTransform; + Uniform(*_program, _mvpUniform).Set(mvp); + _plane->Draw(); + }); } - Uniform(*_program, _alphaUniform).Set(overlayAlpha); - - - _plane->Use(); - // Reconstruct the headpose from the eye poses - auto headPosition = (vec3(_currentRenderEyePoses[Left][3]) + vec3(_currentRenderEyePoses[Right][3])) / 2.0f; - for_each_eye([&](Eye eye) { - eyeViewport(eye); - auto reticleTransform = compositorHelper->getReticleTransform(_currentRenderEyePoses[eye], headPosition); - auto mvp = _eyeProjections[eye] * reticleTransform; - Uniform(*_program, _mvpUniform).Set(mvp); - _plane->Draw(); - }); Uniform(*_program, _alphaUniform).Set(1.0); }