1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-03 14:10:33 +03:00

0028890: Visualization - After closing all views and then display the view again, just the first view has object(s) displayed

DeviceLost flag has been moved from Graphic3d_GraphicDriver to Graphic3d_StructureManager,
so that all Viewers sharing the same Driver instance are properly invalidated.

Fixed clearing of objects by vclear command in case of multiple Viewers.
This commit is contained in:
kgv
2017-07-07 17:06:09 +03:00
committed by bugmaster
parent 336a63f042
commit 851dacdbb9
16 changed files with 137 additions and 83 deletions

View File

@@ -19,6 +19,7 @@
#include <OpenGl_GlCore11.hxx>
#include <Graphic3d_GraphicDriver.hxx>
#include <Graphic3d_StructureManager.hxx>
#include <Graphic3d_TextureParams.hxx>
#include <Graphic3d_Texture2Dmanual.hxx>
#include <Graphic3d_TransformUtils.hxx>
@@ -145,11 +146,9 @@ void OpenGl_View::Redraw()
&& !myCaps->vboDisable
&& !myCaps->keepArrayData)
{
if (myWasRedrawnGL)
{
myDeviceLostFlag = Standard_True;
}
// caps are shared across all views, thus we need to invalidate all of them
// if (myWasRedrawnGL) { myStructureManager->SetDeviceLost(); }
myDriver->setDeviceLost();
myCaps->keepArrayData = Standard_True;
}