QGIS API Documentation 3.43.0-Master (56aa1fd18d7)
qgsdebugtexturerenderview.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsdebugtexturerenderview.cpp
3 --------------------------------------
4 Date : June 2024
5 Copyright : (C) 2024 by Benoit De Mezzo
6 Email : benoit dot de dot mezzo at oslandia dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
17#include <Qt3DRender/QLayerFilter>
18#include <Qt3DRender/QLayer>
19#include <Qt3DRender/qsubtreeenabler.h>
20#include <Qt3DRender/QRenderStateSet>
21#include <Qt3DRender/QDepthTest>
22#include <Qt3DRender/QCullFace>
23
24
26 : QgsAbstractRenderView( viewName )
27{
28 mLayer = new Qt3DRender::QLayer;
29 mLayer->setRecursive( true );
30 mLayer->setObjectName( mViewName + "::Layer" );
31
32 // debug rendering pass
33 buildRenderPass();
34}
35
36Qt3DRender::QLayer *QgsDebugTextureRenderView::debugLayer() const
37{
38 return mLayer;
39}
40
41void QgsDebugTextureRenderView::buildRenderPass()
42{
43 Qt3DRender::QLayerFilter *layerFilter = new Qt3DRender::QLayerFilter( mRendererEnabler );
44 layerFilter->addLayer( mLayer );
45
46 Qt3DRender::QRenderStateSet *renderStateSet = new Qt3DRender::QRenderStateSet( layerFilter );
47 Qt3DRender::QDepthTest *depthTest = new Qt3DRender::QDepthTest;
48 depthTest->setDepthFunction( Qt3DRender::QDepthTest::Always );
49 renderStateSet->addRenderState( depthTest );
50 Qt3DRender::QCullFace *cullFace = new Qt3DRender::QCullFace;
51 cullFace->setMode( Qt3DRender::QCullFace::NoCulling );
52 renderStateSet->addRenderState( cullFace );
53}
Base class for 3D render view.
Qt3DRender::QSubtreeEnabler * mRendererEnabler
QgsDebugTextureRenderView(const QString &viewName)
Constructor.
Qt3DRender::QLayer * debugLayer() const
Returns layer in which entities must be added in the in order to be processed by this renderview.