View Issue Details

IDProjectCategoryView StatusLast Update
0023044Open CASCADEOCCT:Visualizationpublic2012-10-02 15:02
ReportersanAssigned Tosan 
PriorityurgentSeveritymajor 
Status closedResolutionfixed 
PlatformAOSL 
Product Version6.5.3 
Target Version6.5.3Fixed in Version6.5.3 
Summary0023044: Regression: 3D views are not invalidated by some modifications of OpenGl_Structure
DescriptionSome modifications of OpenGl_Structure do not cause invalidation of the views that contain this structure.

This is a regression with respect to OCCT 6.5.2, where TsmInitUpdateState() was called each time when TsmOpenStructure() was called.

The problem has been discovered for OpenGl_GraphicDriver::TransformStructure() method called as a result of AIS_InteractiveContext::SetLocation(iobj, location) call. The visible effect is that calling V3d_View::Update() has no effect after changing the object's location.

The quickest solution is to identify all cases when TsmInitUpdateState() was called in OCCT 6.5.2 and call OpenGl_GraphicDriver::InvalidateAllWorkspaces() accordingly.

The final decision is to make 3D view redrawing unconditional, thus "update" procedure becomes identical to "redraw".
Steps To Reproducepload ALL
vinit
vanimation CrankArmFile CylinderHeadFile PropellerFile EngineBlockFile
Additional information
and documentation updates
Conditional updates of V3d_View instances are no more supported. Update() methods in V3d_View and V3d_Viewer classes are now deprecated and equivalent to Redraw() methods. The latter should be used instead.

If an application expects series of view update events while the 3D scene content is not changed, and multiple redrawing of the scene might have significant negative impact on application performance, then the application itself should ensure necessary protection.

Modified files:

V3d package

  V3d_View.cdl
    V3d_View::Update() method documentation changed

  V3d_Viewer.cdl
    V3d_Viewer::Update() method documentation changed
TagsNo tags attached.
Test case numberchl 934 X5

Attached Files

  • X5 (822 bytes)

Relationships

related to 0022819 closedbugmaster Open CASCADE Redesign of OpenGl driver 

Activities

san

2012-03-29 16:32

developer   ~0020198

CR23044 branch contains the fix, please review

kgv

2012-03-29 16:47

developer   ~0020201

No remarks. Please test patch.

apn

2012-03-30 09:45

administrator   ~0020217

Dear BugMaster,
     Workbench KAS:dev:mkv-23044-occt was created from git branch CR23044 (and mkv-23044-products from svn trunk) and compiled on Linux platform.
   
     There are not regressions in mkv-23044-products regarding to KAS:dev:products-20120326-opt
     
     See results in /QADisk/occttests/results/KAS/dev/mkv-23044-products_29032012/lin
     See reference results in /QADisk/occttests/results/KAS/dev/products-20120326-opt_26032012/lin
     See test cases in /QADisk/occttests/tests/ED

mkv

2012-03-30 12:43

tester  

X5 (822 bytes)

Related Changesets

occt: master 298f9ad7

2012-03-30 13:29:19

san

Details Diff
0023044: Regression: 3D views are not invalidated by some modifications of OpenGl_Structure

myIsUpdated flag and Invalidate() method removed from OpenGl_Workspace class.
View redrawing is made unconditional.
V3d_View::Update() becomes deprecated and should be replaced with V3d_View::Redraw().
V3d_Viewer::Update() becomes deprecated and equivalent to Redraw()
Affected Issues
0023044
mod - src/OpenGl/OpenGl_GraphicDriver.cxx Diff File
mod - src/OpenGl/OpenGl_GraphicDriver.hxx Diff File
mod - src/OpenGl/OpenGl_GraphicDriver_4.cxx Diff File
mod - src/OpenGl/OpenGl_GraphicDriver_7.cxx Diff File
mod - src/OpenGl/OpenGl_GraphicDriver_9.cxx Diff File
mod - src/OpenGl/OpenGl_Workspace.cxx Diff File
mod - src/OpenGl/OpenGl_Workspace.hxx Diff File
mod - src/OpenGl/OpenGl_Workspace_1.cxx Diff File
mod - src/OpenGl/OpenGl_Workspace_2.cxx Diff File
mod - src/V3d/V3d_View.cdl Diff File
mod - src/V3d/V3d_Viewer.cdl Diff File

Issue History

Date Modified Username Field Change
2012-03-28 17:40 san New Issue
2012-03-28 17:40 san Assigned To => san
2012-03-28 17:54 san Status new => assigned
2012-03-29 16:31 san Description Updated
2012-03-29 16:31 san Steps to Reproduce Updated
2012-03-29 16:31 san Additional Information Updated
2012-03-29 16:32 san Note Added: 0020198
2012-03-29 16:32 san Assigned To san => kgv
2012-03-29 16:32 san Status assigned => resolved
2012-03-29 16:47 kgv Note Added: 0020201
2012-03-29 16:47 kgv Assigned To kgv => bugmaster
2012-03-29 16:47 kgv Status resolved => reviewed
2012-03-29 17:05 san Additional Information Updated
2012-03-29 17:07 san Additional Information Updated
2012-03-29 18:22 mkv Assigned To bugmaster => mkv
2012-03-29 20:49 mkv Test case number => chl 934 X5
2012-03-30 09:45 apn Note Added: 0020217
2012-03-30 12:04 mkv Assigned To mkv => bugmaster
2012-03-30 12:04 mkv Status reviewed => tested
2012-03-30 12:43 mkv File Added: X5
2012-04-02 12:34 san Changeset attached => occt master 298f9ad7
2012-04-02 12:34 san Assigned To bugmaster => san
2012-04-02 12:34 san Status tested => verified
2012-04-02 12:34 san Resolution open => fixed
2012-04-03 10:04 abv Relationship added related to 0022819
2012-10-02 15:02 bugmaster Project Internal => Open CASCADE