MantisBT
Mantis Bug Tracker Workflow

View Revisions: Issue #28890 All Revisions ] Back to Issue ]
Summary 0028890: Visualization - After closing all views and then display the view again, just the first view has object(s) displayed
Revision 2017-07-04 13:11 by Vico Liang
Description Steps to reproduce the problem:
1. Create AIS_InteractiveContext myAISContext1, myAISContext2;
2. Display any kind of AIS_InteractiveObject inside myAISContext1, myAISContext2;
3. Create two views to display objects: aView1 for myAISContext1, aView2 for myAISContext2;
// Till now, all is ok;
4. Close these two views aView1 and aView2, both views are removed with view->Remove() function.
5. Create two new views again: aView3 for myAISContext1, aView4 for myAISContext2;

NOTE, the bug occurs in the last step, aView3 will show the object as expected, but aView4 display nothing.

I debug the problem and find the causes:
Graphic3d_GraphicDriver will release all opengl internal resource if there is no any view exist and the IsDeviceLost will return true. If there is a new view need to display objects it will try to rebuild the Graphic3d_Structure. The problem occurs that it just rebuild the first view's Graphic3d_Structure and the later view's structure will not be built since after the frist view building structure, IsDeviceLost will return false, see detailed in method:void V3d_View::Redraw()

Revision 2017-07-04 13:02 by Vico Liang
Description Steps to reproduce the problem:
1. Create AIS_InteractiveContext myAISContext1, myAISContext2;
2. Display any kind of AIS_InteractiveObject inside myAISContext1, myAISContext2;
3. Create two views to display objects: aView1 for myAISContext1, aView2 for myAISContext2;
// Till now, all is ok;
4. Close these two views aView1 and aView2, both views are removed with view->Remove() function.
5. Create two new views again: aView3 for myAISContext1, aView4 for myAISContext2;

NOTE, the bug occurs in the last step, aView3 will show the object as expected, but aView4 display nothing.

I debug the problem and find the causes:
Graphic3d_GraphicDriver will release all opengl internal resource if there is no any view exist and the IsDeviceLost will return true. If there is a new view need to display objects it will try to rebuild the Graphic3d_Structure. The problem occurs that it just rebuild the first view's Graphic3d_Structure and the later view's structure is will not be built since after the frist view building structure, IsDeviceLost will return false, see detailed in method:void V3d_View::Redraw()



Copyright © 2000 - 2019 MantisBT Team
Powered by Mantis Bugtracker