Enable menu blur in stereo 3d.
Use more blitting to avoid confusing framebuffer state management in stereo 3D.
This commit is contained in:
parent
e719b9cf00
commit
8becc0e78d
4 changed files with 37 additions and 16 deletions
|
|
@ -120,7 +120,22 @@ void FGLRenderer::BlurScene(float gameinfobluramount)
|
|||
mBuffers->CompileEffectShaders();
|
||||
mBuffers->UpdateEffectTextures();
|
||||
|
||||
mBuffers->RenderEffect("BlurScene");
|
||||
auto vrmode = VRMode::GetVRMode(true);
|
||||
if (vrmode->mEyeCount == 1)
|
||||
{
|
||||
mBuffers->RenderEffect("BlurScene");
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int eye_ix = 0; eye_ix < vrmode->mEyeCount; ++eye_ix)
|
||||
{
|
||||
FGLDebug::PushGroup("EyeBlur");
|
||||
mBuffers->BlitFromEyeTexture(eye_ix);
|
||||
mBuffers->RenderEffect("BlurScene");
|
||||
mBuffers->BlitToEyeTexture(eye_ix);
|
||||
FGLDebug::PopGroup();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FGLRenderer::ClearTonemapPalette()
|
||||
|
|
@ -137,9 +152,6 @@ void FGLRenderer::ClearTonemapPalette()
|
|||
void FGLRenderer::Flush()
|
||||
{
|
||||
auto vrmode = VRMode::GetVRMode(true);
|
||||
const auto &mSceneViewport = screen->mSceneViewport;
|
||||
const auto &mScreenViewport = screen->mScreenViewport;
|
||||
|
||||
if (vrmode->mEyeCount == 1)
|
||||
{
|
||||
CopyToBackbuffer(nullptr, true);
|
||||
|
|
@ -150,10 +162,9 @@ void FGLRenderer::Flush()
|
|||
for (int eye_ix = 0; eye_ix < vrmode->mEyeCount; ++eye_ix)
|
||||
{
|
||||
FGLDebug::PushGroup("Eye2D");
|
||||
mBuffers->BindEyeFB(eye_ix);
|
||||
glViewport(mScreenViewport.left, mScreenViewport.top, mScreenViewport.width, mScreenViewport.height);
|
||||
glScissor(mScreenViewport.left, mScreenViewport.top, mScreenViewport.width, mScreenViewport.height);
|
||||
mBuffers->BlitFromEyeTexture(eye_ix);
|
||||
screen->Draw2D();
|
||||
mBuffers->BlitToEyeTexture(eye_ix);
|
||||
FGLDebug::PopGroup();
|
||||
}
|
||||
screen->Clear2D();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue