|| myMainSceneFbos[0]->GetVPSizeY() != aSizeY
|| myMainSceneFbos[0]->NbSamples() != aNbSamples)
{
+ if (!myTransientDrawToFront)
+ {
+ myImmediateSceneFbos[0]->Release (aCtx.operator->());
+ myImmediateSceneFbos[1]->Release (aCtx.operator->());
+ myImmediateSceneFbos[0]->ChangeViewport (0, 0);
+ myImmediateSceneFbos[1]->ChangeViewport (0, 0);
+ }
+
// prepare FBOs containing main scene
// for further blitting and rendering immediate presentations on top
if (aCtx->core20fwd != NULL)
{
myMainSceneFbos[0]->Init (aCtx, aSizeX, aSizeY, myFboColorFormat, myFboDepthFormat, aNbSamples);
}
- if (!aCtx->caps->useSystemBuffer && myMainSceneFbos[0]->IsValid())
+ if (myTransientDrawToFront
+ && !aCtx->caps->useSystemBuffer
+ && myMainSceneFbos[0]->IsValid())
{
myImmediateSceneFbos[0]->InitLazy (aCtx, *myMainSceneFbos[0]);
}
{
anImmFbo = myImmediateSceneFbos[0].operator->();
}
+ if (!myTransientDrawToFront)
+ {
+ anImmFbo = aMainFbo;
+ }
#if !defined(GL_ES_VERSION_2_0)
if (aMainFbo == NULL
{
Handle(OpenGl_Context) aCtx = myWorkspace->GetGlContext();
GLboolean toCopyBackToFront = GL_FALSE;
- if (!myTransientDrawToFront)
+ if (theDrawFbo == theReadFbo
+ && theDrawFbo != NULL)
{
myBackBufferRestored = Standard_False;
}
if (anFbo != NULL)
{
anFbo->BindBuffer (aCtx);
+ anFbo->SetupViewport (aCtx);
}
else
{
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_FrameBuffer::NO_FRAMEBUFFER);
}
#endif
+ aCtx->core11fwd->glViewport (0, 0, myWindow->Width(), myWindow->Height());
}
- aCtx->core11fwd->glViewport (0, 0, myWindow->Width(), myWindow->Height());
}
// =======================================================================
vzbufftrihedron
vrenderparams -msaa 0
-vdump $::imagedir/${::casename}_0.png
+vdump $::imagedir/${::casename}_512x512@msaa0.png
vrenderparams -msaa 2
-vdump $::imagedir/${::casename}_2.png
+vdump $::imagedir/${::casename}_512x512@msaa2.png
vrenderparams -msaa 4
-vdump $::imagedir/${::casename}_4.png
+vdump $::imagedir/${::casename}_512x512@msaa4.png
vrenderparams -msaa 8
-vdump $::imagedir/${::casename}_8.png
+vdump $::imagedir/${::casename}_512x512@msaa8.png
+
+# check dump with resolutions not equal to window size
+vdump $::imagedir/${::casename}_1920x1080@msaa8.png -width 1920 -height 1080
+vdump $::imagedir/${::casename}_2560x1440@msaa8.png -width 2560 -height 1440
+
+# check dump with stereo
+vstereo anaglyph
+vdump $::imagedir/${::casename}_512x512@msaa8stereo.png -stereo blend
+vdump $::imagedir/${::casename}_1920x1080@msaa8stereo.png -width 1920 -height 1080 -stereo blend
+vdump $::imagedir/${::casename}_2560x1440@msaa8stereo.png -width 2560 -height 1440 -stereo blend
+
+vraytrace 1
+vsetdispmode b 1
+vdump $::imagedir/${::casename}_512x512@msaa8stereort.png -stereo blend
+vdump $::imagedir/${::casename}_1920x1080@msaa8stereort.png -width 1920 -height 1080 -stereo blend
+vdump $::imagedir/${::casename}_2560x1440@msaa8stereort.png -width 2560 -height 1440 -stereo blend
+vsetdispmode b 0
+vraytrace 0