MantisBT - Community
View Issue Details
0030748Community[OCCT] OCCT:Visualizationpublic2019-05-27 18:352019-06-18 16:28
Vico Liang 
Vico Liang 
normalblock 
feedbackopen 
 
[OCCT] 7.4.0* 
0030748: Visualization - Marker displayed in immediate layer ruins QT Quick view controls
Get the latest code from git and build for Android.
Use Qt Quick as UI and setup OpenGL ES context as AndroidQt sample.
When moving mouse under the shape with markers, the QT quick controls are filled with black background as picture "ill-status.jpg" depicted.
An correct image is uploaded to depict the normal case "normal-status.jpg".

The issue won't occur in current release version occt7.3.0. It also occurs on ios and uwp platform, So this should be an regression.


No tags attached.
related to 0030374verified apn Open CASCADE Visualization, TKOpenGl - activate texture unit Graphic3d_TextureUnit_1 after OpenGl_LayerList::renderTransparent() 
jpg ill-status.jpg (352,962) 2019-05-27 18:35
https://tracker.dev.opencascade.org/
jpg normal-status.jpg (393,434) 2019-05-27 18:36
https://tracker.dev.opencascade.org/
Issue History
2019-05-27 18:35Vico LiangNew Issue
2019-05-27 18:35Vico LiangAssigned To => kgv
2019-05-27 18:35Vico LiangFile Added: ill-status.jpg
2019-05-27 18:36Vico LiangFile Added: normal-status.jpg
2019-05-27 18:43kgvNote Added: 0084676
2019-05-27 18:55Vico LiangNote Added: 0084677
2019-05-27 19:00Vico LiangNote Added: 0084678
2019-05-27 19:21Vico LiangNote Added: 0084679
2019-06-11 05:18Vico LiangNote Added: 0084979
2019-06-18 16:26kgvNote Added: 0085124
2019-06-18 16:26kgvAssigned Tokgv => Vico Liang
2019-06-18 16:26kgvStatusnew => feedback
2019-06-18 16:27kgvRelationship addedrelated to 0030374
2019-06-18 16:28kgvNote Edited: 0085124bug_revision_view_page.php?bugnote_id=85124#r21394

Notes
(0084676)
kgv   
2019-05-27 18:43   
This is unrelated to OCCT, but to Qt/OCCT interoperability of shared OpenGL context. The OpenGL state affecting rendering of Qt elements should be manually restored after OCCT 3D Viewer.
(0084677)
Vico Liang   
2019-05-27 18:55   
so i'm curious why it works in occt7.3.0. do you mean it's a new behavior of occt current dev version? would you please give more hint about how to do on qt side? thanks in advance.
(0084678)
Vico Liang   
2019-05-27 19:00   
other shape like edge, face works well. if the marker not in immediate layer, it works well too. It just occurs for marker in immediate layer. what's the problem behind it? please guide. thanks.
(0084679)
Vico Liang   
2019-05-27 19:21   
Even don't need to draw marker actually, SetGroupPrimitivesAspect/SetPrimitivesAspect with Aspect with marker type will reproduce the issue.

myAspects = new Graphic3d_Aspects();
myAspects->SetMarkerType(Aspect_TOM_O);
aGroup->SetGroupPrimitivesAspect(myAspects);
(0084979)
Vico Liang   
2019-06-11 05:18   
Dear kgv, could you please take a look at this issue? It's a regression failure. The same code works for OCCT 7.3.0, but fails in master branch. Thanks.
(0085124)
kgv   
2019-06-18 16:26   
(edited on: 2019-06-18 16:28)
I'm unable reproducing the issue nor find any changes related to this.
Could you please prepare a reproducible sample?
Which version of Qt is used?

> would you please give more hint about how to do on qt side?
Actually this is not Qt, but OpenGL/OpenGL ES global state, which should be smoothed between renderers not knowing anything about each other.

Both Qt and OCCT tries to avoid unnecessary OpenGL state changes, leading to possible rendering issues when wrong state is assumed. There is a plenty of states known to cause issues with Qt like GL_UNPACK_ALIGNMENT, multi-texturing, active GLSL program.

See, for example, similar screenshot for 0030374.