5#ifndef QSGSOFTWARERENDERABLENODEUPDATER_H
6#define QSGSOFTWARERENDERABLENODEUPDATER_H
22#include <private/qsgadaptationlayer_p.h>
36 bool visit(QSGTransformNode *)
override;
37 void endVisit(QSGTransformNode *)
override;
38 bool visit(QSGClipNode *)
override;
39 void endVisit(QSGClipNode *)
override;
40 bool visit(QSGGeometryNode *)
override;
41 void endVisit(QSGGeometryNode *)
override;
42 bool visit(QSGOpacityNode *)
override;
43 void endVisit(QSGOpacityNode *)
override;
44 bool visit(QSGInternalImageNode *)
override;
45 void endVisit(QSGInternalImageNode *)
override;
46 bool visit(QSGPainterNode *)
override;
47 void endVisit(QSGPainterNode *)
override;
48 bool visit(QSGInternalRectangleNode *)
override;
49 void endVisit(QSGInternalRectangleNode *)
override;
50 bool visit(QSGGlyphNode *)
override;
51 void endVisit(QSGGlyphNode *)
override;
52 bool visit(QSGRootNode *)
override;
53 void endVisit(QSGRootNode *)
override;
54#if QT_CONFIG(quick_sprite)
61 void updateNodes(QSGNode *node,
bool isNodeRemoved =
false);
72 NodeState currentState(QSGNode *node)
const;
75 bool updateRenderableNode(QSGSoftwareRenderableNode::NodeType type, NODE *node);
77 QSGAbstractSoftwareRenderer *m_renderer;
78 QStack<
float> m_opacityState;
79 QStack<QRegion> m_clipState;
81 QStack<QTransform> m_transformState;
82 QHash<QSGNode*,NodeState> m_stateMap;
89 auto renderableNode = m_renderer->renderableNode(node);
90 if (renderableNode ==
nullptr) {
91 renderableNode =
new QSGSoftwareRenderableNode(type, node);
92 m_renderer->addNodeMapping(node, renderableNode);
96 renderableNode->setTransform(m_transformState.top());
97 renderableNode->setOpacity(m_opacityState.top());
98 renderableNode->setClipRegion(m_clipState.top(), m_hasClip);
100 renderableNode->update();
101 m_stateMap[node] = currentState(node);
QSGSoftwareRenderableNodeUpdater(QSGAbstractSoftwareRenderer *renderer)
void endVisit(QSGTransformNode *) override
void endVisit(QSGRenderNode *) override
virtual ~QSGSoftwareRenderableNodeUpdater()
bool visit(QSGRenderNode *) override
bool visit(QSGTransformNode *) override
void updateNodes(QSGNode *node, bool isNodeRemoved=false)
Combined button and popup list for selecting options.
QT_BEGIN_NAMESPACE Q_STATIC_LOGGING_CATEGORY(lcSynthesizedIterableAccess, "qt.iterable.synthesized", QtWarningMsg)