QGIS API Documentation 4.1.0-Master (26185ffb827)
Loading...
Searching...
No Matches
qgspostprocessingrenderview.h
Go to the documentation of this file.
1/***************************************************************************
2 qgspostprocessingrenderview.h
3 --------------------------------------
4 Date : April 2026
5 Copyright : (C) 2026 by Benoit De Mezzo and (C) 2020 by Belgacem Nedjima
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
16#ifndef QGSPOSTPROCESSINGRENDERVIEW_H
17#define QGSPOSTPROCESSINGRENDERVIEW_H
18
20
21#define SIP_NO_FILE
22
23namespace Qt3DCore
24{
25 class QEntity;
26} //namespace Qt3DCore
27
28namespace Qt3DRender
29{
30 class QTexture2D;
31 class QRenderTargetSelector;
32 class QClearBuffers;
33 class QRenderStateSet;
34 class QRenderCapture;
35 class QRenderTarget;
36 class QLayer;
37} //namespace Qt3DRender
38
39class QgsFrameGraph;
42
54{
55 public:
57 QgsPostprocessingRenderView( const QString &viewName, QgsFrameGraph *frameGraph, QSize size, Qt3DCore::QEntity *rootSceneEntity );
58
59 virtual void updateWindowResize( int width, int height ) override;
60
62 Qt3DRender::QRenderCapture *renderCapture() const;
63
66
70 void setOffScreenRenderCaptureEnabled( bool enabled );
71
73 QgsOverlayTextureRenderView *overlayTextureRenderView() const { return mOverlayTextureRenderView.get(); }
74
75 private:
76 Qt3DRender::QRenderTarget *buildRenderCaptureTextures( QSize size );
77 Qt3DRender::QFrameGraphNode *constructMainPass( QSize size );
78 Qt3DRender::QFrameGraphNode *constructSubPassForProcessing( QgsFrameGraph *frameGraph, Qt3DCore::QEntity *rootSceneEntity );
79 Qt3DRender::QFrameGraphNode *constructSubPassForRenderCapture();
80 Qt3DRender::QFrameGraphNode *constructSubPassForOverlayTexture();
81
82 std::unique_ptr<QgsOverlayTextureRenderView> mOverlayTextureRenderView;
83
84 Qt3DRender::QRenderTargetSelector *mRenderCaptureTargetSelector = nullptr;
85 Qt3DRender::QRenderCapture *mRenderCapture = nullptr;
86
87 QgsPostprocessingEntity *mPostprocessingEntity = nullptr;
88
89 // Post processing pass texture related objects:
90 Qt3DRender::QTexture2D *mRenderCaptureColorTexture = nullptr;
91 Qt3DRender::QTexture2D *mRenderCaptureDepthTexture = nullptr;
92};
93
94#endif // QGSPOSTPROCESSINGRENDERVIEW_H
QgsAbstractRenderView(const QString &viewName)
Constructor for QgsAbstractRenderView with the specified parent object.
Container class that holds different objects related to frame graphs of 3D scenes.
Simple render view to preview overlay textures in 3D view.
An entity that is responsible for applying post processing effects.
Qt3DRender::QRenderCapture * renderCapture() const
Returns the render capture object used to take an image of the postprocessing buffer of the scene.
QgsPostprocessingEntity * entity() const
Returns the QT3D entity used to do the rendering.
QgsPostprocessingRenderView(const QString &viewName, QgsFrameGraph *frameGraph, QSize size, Qt3DCore::QEntity *rootSceneEntity)
Default constructor.
void setOffScreenRenderCaptureEnabled(bool enabled)
Sets whether it will be possible to render to an image.
QgsOverlayTextureRenderView * overlayTextureRenderView() const
Returns overlay texture render view.
virtual void updateWindowResize(int width, int height) override
Called when 3D window is resized.