Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qssgrenderextensions_p.h
Go to the documentation of this file.
1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QSSGRENDEREXTENSIIONS_P_H
5#define QSSGRENDEREXTENSIIONS_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtQuick3DRuntimeRender/private/qtquick3druntimerenderglobal_p.h>
19#include <QtQuick3DRuntimeRender/private/qssgrenderableobjects_p.h>
20#include <QtCore/qobject.h>
21
23
24class QSSGRenderer;
26
27// NOTE: We might want to move this to the base types header
30
32
33struct QSSGRenderNode;
34struct QSSGRenderMesh;
35
36class Q_QUICK3DRUNTIMERENDER_EXPORT QSSGFrameData
37{
38public:
39 [[nodiscard]] QSSGRhiGraphicsPipelineState getPipelineState() const;
40
41 [[nodiscard]] QSSGRenderableNodeEntry getNode(QSSGNodeId id) const;
42 [[nodiscard]] QSSGRenderableNodeEntry takeNode(QSSGNodeId id);
43
44 [[nodiscard]] QSSGRenderGraphObject *getResource(QSSGResourceId id) const;
45
46 [[nodiscard]] QSSGRenderCamera *camera() const;
47
48 [[nodiscard]] QSSGRenderer *renderer() const { return m_renderer; }
49
50private:
51 friend class QSSGLayerRenderData;
52 friend class QSSGRenderHelpers;
53
54 void clear();
55
56 [[nodiscard]] QSSGLayerRenderData *getCurrent() const;
57
58 QSSGFrameData() = default;
60 QSSGRenderer *m_renderer = nullptr;
61};
62
63class Q_QUICK3DRUNTIMERENDER_EXPORT QSSGRenderExtension : public QSSGRenderGraphObject
64{
65public:
66 enum class Type
67 {
68 Standalone,
69 Main
70 };
71
72 enum class RenderMode
73 {
74 Underlay,
75 Overlay
76 };
77
79 virtual ~QSSGRenderExtension();
80
81 virtual bool prepareData(QSSGFrameData &data) = 0;
82 virtual void prepareRender(const QSSGRenderer &renderer, QSSGFrameData &data) = 0;
83 virtual void render(const QSSGRenderer &renderer) = 0;
84
85 virtual void release() = 0;
86
87 virtual Type type() const = 0;
88 virtual RenderMode mode() const = 0;
89};
90
92
93#endif // QSSGRENDEREXTENSIIONS_P_H
int(* Main)(int, char **)
\inmodule QtQuick3DRuntimeRender
QSSGRenderer * renderer() const
QCamera * camera
Definition camera.cpp:19
b clear()
Combined button and popup list for selecting options.
GLenum mode
GLenum type
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
quintptr QSSGResourceId
quintptr QSSGNodeId
quintptr QSSGResourceId
quintptr QSSGNodeId
size_t quintptr
Definition qtypes.h:72
sem release()
myWidget render(this)
QSvgRenderer * renderer
[0]
Definition moc.h:24