MantisBT - Community
View Issue Details
0030748Community[OCCT] OCCT:Visualizationpublic2019-05-27 18:352019-07-08 12:58
Vico Liang 
[OCCT] 7.4.0 
[OCCT] 7.4.0[OCCT] 7.4.0 
Not needed
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 0030374closed apn Open CASCADE Visualization, TKOpenGl - activate texture unit Graphic3d_TextureUnit_1 after OpenGl_LayerList::renderTransparent() 
child of 0030571closed apn Open CASCADE Visualization, TKOpenGl - mapped texture is ignored while drawing points 
jpg ill-status.jpg (352,962) 2019-05-27 18:35
jpg normal-status.jpg (393,434) 2019-05-27 18:36
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
2019-06-22 19:01Vico LiangNote Added: 0085232
2019-06-22 19:02Vico LiangRelationship addedrelated to 0030571
2019-06-22 19:51gitNote Added: 0085233
2019-06-22 19:51kgvNote Added: 0085234
2019-06-22 19:51kgvNote Edited: 0085234bug_revision_view_page.php?bugnote_id=85234#r21415
2019-06-24 05:07Vico LiangNote Added: 0085235
2019-06-24 08:07kgvRelationship replacedchild of 0030571
2019-06-24 09:54kgvNote Added: 0085242
2019-06-24 09:54kgvAssigned ToVico Liang => bugmaster
2019-06-24 09:54kgvSeverityblock => minor
2019-06-24 09:54kgvStatusfeedback => reviewed
2019-06-24 09:54kgvProduct Version => 7.4.0
2019-06-24 12:10apnTest case number => Not needed
2019-06-24 12:10apnNote Added: 0085250
2019-06-24 12:10apnStatusreviewed => tested
2019-07-01 17:28kgvChangeset attached => occt master 0c33a0bf
2019-07-01 17:28kgvAssigned Tobugmaster => kgv
2019-07-01 17:28kgvStatustested => verified
2019-07-01 17:28kgvResolutionopen => fixed
2019-07-08 12:58gitNote Added: 0085481

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.
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.
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.
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();
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.
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.

Vico Liang   
2019-06-22 19:01   
Dear kgv,

It's rather complicated to prepare a sample to reproduce the issue. could your please check issue 0030571 ? It relates to point marker display. Currently this is the only hint. I will try to prepare a sample to reproduce this, but it may need a little more time.
2019-06-22 19:51   
Branch CR30748 has been created by kgv.

SHA-1: 0c33a0bf4d320a4afef435687477636a570100b3

Detailed log of new commits:

Author: kgv
Date: Sat Jun 22 19:50:10 2019 +0300

    0030748: Visualization - Marker displayed in immediate layer ruins QT Quick view controls
    OpenGl_Workspace::ResetAppliedAspect() now resets active texture unit to GL_TEXTURE0.
2019-06-22 19:51   
Does patch in branch CR30748 make any difference?

Vico Liang   
2019-06-24 05:07   
Dear kgv, It works well. It save me much time to prepare a sample case to reproduce the issue. Thank you so much for the fix.
2019-06-24 09:54   
Please take the patch. [^]
2019-06-24 12:10   
Combination -
OCCT branch : CR30748
master SHA - 0c33a0bf4d320a4afef435687477636a570100b3
Products branch : master SHA - c08b242c9da615bfdf83ca463321740d4cc22898
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

No regressions/differences

CPU differences:
Total CPU difference: 16476.210000000094 / 16513.620000000094 [-0.23%]
Total CPU difference: 10526.460000000054 / 10515.620000000044 [+0.10%]
Total CPU difference: 17815.421875 / 17822.375 [-0.04%]
Total CPU difference: 12104.4375 / 12126.671875 [-0.18%]

Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention
2019-07-08 12:58   
Branch CR30748 has been deleted by inv.

SHA-1: 0c33a0bf4d320a4afef435687477636a570100b3