Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qsgsoftwarerenderlistbuilder.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
6
15
16#include <QtQuick/qsgsimplerectnode.h>
17#include <QtQuick/qsgsimpletexturenode.h>
18#include <QtQuick/qsgrendernode.h>
19
20QT_BEGIN_NAMESPACE
21
22QSGSoftwareRenderListBuilder::QSGSoftwareRenderListBuilder(QSGAbstractSoftwareRenderer *renderer)
23 : m_renderer(renderer)
24{
25
26}
27
28bool QSGSoftwareRenderListBuilder::visit(QSGTransformNode *)
29{
30 return true;
31}
32
33void QSGSoftwareRenderListBuilder::endVisit(QSGTransformNode *)
34{
35}
36
37bool QSGSoftwareRenderListBuilder::visit(QSGClipNode *)
38{
39 return true;
40}
41
42void QSGSoftwareRenderListBuilder::endVisit(QSGClipNode *)
43{
44}
45
46bool QSGSoftwareRenderListBuilder::visit(QSGGeometryNode *node)
47{
48 return addRenderableNode(node);
49}
50
51void QSGSoftwareRenderListBuilder::endVisit(QSGGeometryNode *)
52{
53}
54
55bool QSGSoftwareRenderListBuilder::visit(QSGOpacityNode *)
56{
57 return true;
58}
59
60void QSGSoftwareRenderListBuilder::endVisit(QSGOpacityNode *)
61{
62}
63
64bool QSGSoftwareRenderListBuilder::visit(QSGInternalImageNode *node)
65{
66 return addRenderableNode(node);
67}
68
69void QSGSoftwareRenderListBuilder::endVisit(QSGInternalImageNode *)
70{
71}
72
73bool QSGSoftwareRenderListBuilder::visit(QSGPainterNode *node)
74{
75 return addRenderableNode(node);
76}
77
78void QSGSoftwareRenderListBuilder::endVisit(QSGPainterNode *)
79{
80}
81
82bool QSGSoftwareRenderListBuilder::visit(QSGInternalRectangleNode *node)
83{
84 return addRenderableNode(node);
85}
86
87void QSGSoftwareRenderListBuilder::endVisit(QSGInternalRectangleNode *)
88{
89}
90
91bool QSGSoftwareRenderListBuilder::visit(QSGGlyphNode *node)
92{
93 return addRenderableNode(node);
94}
95
96void QSGSoftwareRenderListBuilder::endVisit(QSGGlyphNode *)
97{
98}
99
100bool QSGSoftwareRenderListBuilder::visit(QSGRootNode *)
101{
102 return true;
103}
104
105void QSGSoftwareRenderListBuilder::endVisit(QSGRootNode *)
106{
107}
108
109#if QT_CONFIG(quick_sprite)
110bool QSGSoftwareRenderListBuilder::visit(QSGSpriteNode *node)
111{
112 return addRenderableNode(node);
113}
114
115void QSGSoftwareRenderListBuilder::endVisit(QSGSpriteNode *)
116{
117
118}
119#endif
120
121bool QSGSoftwareRenderListBuilder::visit(QSGRenderNode *node)
122{
123 return addRenderableNode(node);
124}
125
126void QSGSoftwareRenderListBuilder::endVisit(QSGRenderNode *)
127{
128}
129
130bool QSGSoftwareRenderListBuilder::addRenderableNode(QSGNode *node)
131{
132 auto renderableNode = m_renderer->renderableNode(node);
133 if (renderableNode == nullptr) {
134 // Not a node we can render
135 return false;
136 }
137 m_renderer->appendRenderableNode(renderableNode);
138 return true;
139}
140
141QT_END_NAMESPACE