32 QSGAbstractSoftwareRenderer(QSGRenderContext *context);
33 virtual ~QSGAbstractSoftwareRenderer();
35 QSGSoftwareRenderableNode *renderableNode(QSGNode *node)
const;
36 void addNodeMapping(QSGNode *node, QSGSoftwareRenderableNode *renderableNode);
37 void appendRenderableNode(QSGSoftwareRenderableNode *node);
39 void nodeChanged(QSGNode *node, QSGNode::DirtyState state) override;
43 void setClearColorEnabled(
bool enable);
44 bool clearColorEnabled()
const;
47 QRegion renderNodes(QPainter *painter);
48 void buildRenderList();
49 QRegion optimizeRenderList();
51 void setBackgroundColor(
const QColor &color);
52 void setBackgroundRect(
const QRect &rect, qreal devicePixelRatio);
53 QColor backgroundColor();
54 QRect backgroundRect();
56 bool isOpaque()
const {
return m_isOpaque; }
57 const QVector<QSGSoftwareRenderableNode*> &renderableNodes()
const;
60 void nodeAdded(QSGNode *node);
61 void nodeRemoved(QSGNode *node);
62 void nodeGeometryUpdated(QSGNode *node);
63 void nodeMaterialUpdated(QSGNode *node);
64 void nodeMatrixUpdated(QSGNode *node);
65 void nodeOpacityUpdated(QSGNode *node);
67 QHash<QSGNode*, QSGSoftwareRenderableNode*> m_nodes;
68 QVector<QSGSoftwareRenderableNode*> m_renderableNodes;
70 QSGSimpleRectNode *m_background;
72 QRegion m_dirtyRegion;
73 QRegion m_obscuredRegion;
74 qreal m_devicePixelRatio = 1;
75 bool m_isOpaque =
false;
76 bool m_clearColorEnabled =
true;
78 QSGSoftwareRenderableNodeUpdater *m_nodeUpdater;