20#include <Qt3DRender/QCamera>
21#include <Qt3DRender/QCameraSelector>
22#include <Qt3DRender/QClearBuffers>
23#include <Qt3DRender/QCullFace>
24#include <Qt3DRender/QDepthTest>
25#include <Qt3DRender/QLayer>
26#include <Qt3DRender/QLayerFilter>
27#include <Qt3DRender/QRenderCapture>
28#include <Qt3DRender/QRenderStateSet>
29#include <Qt3DRender/QRenderTarget>
30#include <Qt3DRender/QRenderTargetSelector>
31#include <Qt3DRender/QTexture>
32#include <Qt3DRender/qsubtreeenabler.h>
37 mLayer =
new Qt3DRender::QLayer;
38 mLayer->setRecursive(
true );
39 mLayer->setObjectName(
mViewName +
"::Layer" );
42 buildRenderPass( size, forwardDepthTexture, rootSceneEntity );
47 mColorTexture->setSize( width, height );
50Qt3DRender::QRenderTarget *QgsDepthRenderView::buildTextures( QSize size )
54 Qt3DRender::QRenderTargetOutput *colorOutput =
new Qt3DRender::QRenderTargetOutput;
55 colorOutput->setAttachmentPoint( Qt3DRender::QRenderTargetOutput::Color0 );
58 mColorTexture =
new Qt3DRender::QTexture2D( colorOutput );
59 mColorTexture->setSize( size.width(), size.height() );
60 mColorTexture->setFormat( Qt3DRender::QAbstractTexture::RGB8_UNorm );
61 mColorTexture->setMinificationFilter( Qt3DRender::QAbstractTexture::Linear );
62 mColorTexture->setMagnificationFilter( Qt3DRender::QAbstractTexture::Linear );
63 mColorTexture->setObjectName(
mViewName +
"::mColorTexture" );
66 colorOutput->setTexture( mColorTexture );
68 Qt3DRender::QRenderTarget *renderTarget =
new Qt3DRender::QRenderTarget;
69 renderTarget->setObjectName(
mViewName +
"::RenderTarget" );
70 renderTarget->addOutput( colorOutput );
75void QgsDepthRenderView::buildRenderPass( QSize size, Qt3DRender::QTexture2D *forwardDepthTexture, Qt3DCore::QEntity *rootSceneEntity )
78 Qt3DRender::QLayerFilter *layerFilter =
new Qt3DRender::QLayerFilter(
mRendererEnabler );
79 layerFilter->addLayer( mLayer );
81 Qt3DRender::QRenderTargetSelector *renderTargetSelector =
new Qt3DRender::QRenderTargetSelector( layerFilter );
84 Qt3DRender::QRenderTarget *renderTarget = buildTextures( size );
86 renderTargetSelector->setTarget( renderTarget );
89 mDepthRenderCapture =
new Qt3DRender::QRenderCapture( renderTargetSelector );
92 new QgsDepthEntity( forwardDepthTexture, mLayer, rootSceneEntity );
Qt3DRender::QSubtreeEnabler * mRendererEnabler
QgsAbstractRenderView(const QString &viewName)
Constructor for QgsAbstractRenderView with the specified parent object.
void updateWindowResize(int width, int height) override
Called when 3D window is resized.
QgsDepthRenderView(const QString &viewName, QSize size, Qt3DRender::QTexture2D *forwardDepthTexture, Qt3DCore::QEntity *rootSceneEntity)
Constructor.