@@ -38,6 +38,7 @@ typedef Qt3DCore::QBuffer Qt3DQBuffer;
38
38
#include < Qt3DRender/QLayer>
39
39
#include < Qt3DRender/QLayerFilter>
40
40
#include < Qt3DRender/QPointLight>
41
+ #include < Qt3DRender/QSortPolicy>
41
42
#include < QWidget>
42
43
#include < QScreen>
43
44
#include < QShortcut>
@@ -307,7 +308,14 @@ Qt3DRender::QViewport *Qgs3DAxis::constructAxisViewport( Qt3DCore::QEntity *pare
307
308
axisCameraSelector->setParent ( axisLayerFilter );
308
309
axisCameraSelector->setCamera ( mAxisCamera );
309
310
310
- Qt3DRender::QClearBuffers *clearBuffers = new Qt3DRender::QClearBuffers ( axisCameraSelector );
311
+ // This ensures to have the labels (Text2DEntity) rendered after the other objects and therefore
312
+ // avoid any transparency issue on the labels.
313
+ Qt3DRender::QSortPolicy *sortPolicy = new Qt3DRender::QSortPolicy ( axisCameraSelector );
314
+ QVector<Qt3DRender::QSortPolicy::SortType> sortTypes = QVector<Qt3DRender::QSortPolicy::SortType>();
315
+ sortTypes << Qt3DRender::QSortPolicy::BackToFront;
316
+ sortPolicy->setSortTypes ( sortTypes );
317
+
318
+ Qt3DRender::QClearBuffers *clearBuffers = new Qt3DRender::QClearBuffers ( sortPolicy );
311
319
clearBuffers->setBuffers ( Qt3DRender::QClearBuffers::DepthBuffer );
312
320
313
321
// cppcheck-suppress memleak
@@ -348,7 +356,14 @@ Qt3DRender::QViewport *Qgs3DAxis::constructLabelViewport( Qt3DCore::QEntity *par
348
356
twoDCameraSelector->setParent ( twoDLayerFilter );
349
357
twoDCameraSelector->setCamera ( mTwoDLabelCamera );
350
358
351
- Qt3DRender::QClearBuffers *clearBuffers = new Qt3DRender::QClearBuffers ( twoDCameraSelector );
359
+ // this ensures to have the labels (Text2DEntity) rendered after the other objects and therefore
360
+ // avoid any transparency issue on the labels.
361
+ Qt3DRender::QSortPolicy *sortPolicy = new Qt3DRender::QSortPolicy ( twoDCameraSelector );
362
+ QVector<Qt3DRender::QSortPolicy::SortType> sortTypes = QVector<Qt3DRender::QSortPolicy::SortType>();
363
+ sortTypes << Qt3DRender::QSortPolicy::BackToFront;
364
+ sortPolicy->setSortTypes ( sortTypes );
365
+
366
+ Qt3DRender::QClearBuffers *clearBuffers = new Qt3DRender::QClearBuffers ( sortPolicy );
352
367
clearBuffers->setBuffers ( Qt3DRender::QClearBuffers::DepthBuffer );
353
368
354
369
// cppcheck-suppress memleak
0 commit comments