17#include <Qt3DRender/QCamera>
18#include <Qt3DRender/QLayerFilter>
19#include <Qt3DRender/QLayer>
20#include <Qt3DRender/QRenderTargetSelector>
21#include <Qt3DRender/QRenderTarget>
22#include <Qt3DRender/QTexture>
23#include <Qt3DRender/QClearBuffers>
24#include <Qt3DRender/qsubtreeenabler.h>
25#include <Qt3DRender/QCameraSelector>
26#include <Qt3DRender/QRenderStateSet>
27#include <Qt3DRender/QDepthTest>
28#include <Qt3DRender/QCullFace>
29#include <Qt3DRender/QRenderCapture>
36 mLayer =
new Qt3DRender::QLayer;
37 mLayer->setRecursive(
true );
38 mLayer->setObjectName(
mViewName +
"::Layer" );
41 buildRenderPass( size, forwardDepthTexture, rootSceneEntity );
46 mColorTexture->setSize( width, height );
49Qt3DRender::QRenderTarget *QgsDepthRenderView::buildTextures( QSize size )
53 Qt3DRender::QRenderTargetOutput *colorOutput =
new Qt3DRender::QRenderTargetOutput;
54 colorOutput->setAttachmentPoint( Qt3DRender::QRenderTargetOutput::Color0 );
57 mColorTexture =
new Qt3DRender::QTexture2D( colorOutput );
58 mColorTexture->setSize( size.width(), size.height() );
59 mColorTexture->setFormat( Qt3DRender::QAbstractTexture::RGB8_UNorm );
60 mColorTexture->setMinificationFilter( Qt3DRender::QAbstractTexture::Linear );
61 mColorTexture->setMagnificationFilter( Qt3DRender::QAbstractTexture::Linear );
62 mColorTexture->setObjectName(
mViewName +
"::mColorTexture" );
65 colorOutput->setTexture( mColorTexture );
67 Qt3DRender::QRenderTarget *renderTarget =
new Qt3DRender::QRenderTarget;
68 renderTarget->setObjectName(
mViewName +
"::RenderTarget" );
69 renderTarget->addOutput( colorOutput );
74void QgsDepthRenderView::buildRenderPass( QSize size, Qt3DRender::QTexture2D *forwardDepthTexture, Qt3DCore::QEntity *rootSceneEntity )
77 Qt3DRender::QLayerFilter *layerFilter =
new Qt3DRender::QLayerFilter(
mRendererEnabler );
78 layerFilter->addLayer( mLayer );
80 Qt3DRender::QRenderTargetSelector *renderTargetSelector =
new Qt3DRender::QRenderTargetSelector( layerFilter );
83 Qt3DRender::QRenderTarget *renderTarget = buildTextures( size );
85 renderTargetSelector->setTarget( renderTarget );
88 mDepthRenderCapture =
new Qt3DRender::QRenderCapture( renderTargetSelector );
91 new QgsDepthEntity( forwardDepthTexture, mLayer, rootSceneEntity );
Base class for 3D render view.
Qt3DRender::QSubtreeEnabler * mRendererEnabler
An entity that is responsible for capturing depth.
virtual 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.