File: deferredrenderer.h

package info (click to toggle)
qt6-3d 6.8.2%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 191,232 kB
  • sloc: cpp: 394,755; ansic: 11,426; python: 467; objc: 260; javascript: 158; sh: 132; xml: 38; makefile: 20
file content (49 lines) | stat: -rw-r--r-- 1,756 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only

#ifndef DEFERREDRENDERER_H
#define DEFERREDRENDERER_H

#include <Qt3DRender/QViewport>
#include <Qt3DRender/QClearBuffers>
#include <Qt3DRender/QLayerFilter>
#include <Qt3DRender/QRenderPassFilter>
#include <Qt3DRender/QRenderTargetSelector>
#include <Qt3DRender/QRenderSurfaceSelector>
#include <Qt3DRender/QCameraSelector>
#include <Qt3DRender/QFilterKey>

class GBuffer;

class DeferredRenderer : public Qt3DRender::QViewport
{
public:
    explicit DeferredRenderer(Qt3DCore::QNode *parent = 0);

    void setSceneCamera(Qt3DCore::QEntity *camera);
    void setGBuffer(Qt3DRender::QRenderTarget *gBuffer);
    void setGeometryPassCriteria(QList<Qt3DRender::QFilterKey *> criteria);
    void setFinalPassCriteria(QList<Qt3DRender::QFilterKey *> criteria);
    void setGBufferLayer(Qt3DRender::QLayer *layer);
    void setScreenQuadLayer(Qt3DRender::QLayer *layer);
    void setSurface(QWindow *surface);

private:
    Qt3DRender::QRenderSurfaceSelector *m_surfaceSelector;
    Qt3DRender::QLayerFilter *m_sceneFilter;
    Qt3DRender::QLayerFilter *m_screenQuadFilter;
    Qt3DRender::QClearBuffers *m_clearScreenQuad;
    Qt3DRender::QRenderTargetSelector *m_gBufferTargetSelector;
    Qt3DRender::QClearBuffers *m_clearGBuffer;
    Qt3DRender::QRenderPassFilter *m_geometryPassFilter;
    Qt3DRender::QRenderPassFilter *m_finalPassFilter;
    Qt3DRender::QCameraSelector *m_sceneCameraSelector;
    Qt3DRender::QParameter *m_winSize;
    GBuffer *m_gBuffer;
    QWindow *m_window;

    QMetaObject::Connection m_widthChangedConnection;
    QMetaObject::Connection m_heightChangedConnection;
};

#endif // DEFERREDRENDERER_H