33 QSGAbstractSoftwareRenderer(QSGRenderContext *context);
34 virtual ~QSGAbstractSoftwareRenderer();
36 QSGSoftwareRenderableNode *renderableNode(QSGNode *node)
const;
37 void addNodeMapping(QSGNode *node, QSGSoftwareRenderableNode *renderableNode);
38 void appendRenderableNode(QSGSoftwareRenderableNode *node);
40 void nodeChanged(QSGNode *node, QSGNode::DirtyState state) override;
44 void setClearColorEnabled(
bool enable);
45 bool clearColorEnabled()
const;
48 QRegion renderNodes(QPainter *painter);
49 void buildRenderList();
50 QRegion optimizeRenderList();
52 void setBackgroundColor(
const QColor &color);
53 void setBackgroundRect(
const QRect &rect, qreal devicePixelRatio);
54 QColor backgroundColor();
55 QRect backgroundRect();
57 bool isOpaque()
const {
return m_isOpaque; }
58 const QList<QSGSoftwareRenderableNode*> &renderableNodes()
const;
61 void nodeAdded(QSGNode *node);
62 void nodeRemoved(QSGNode *node);
63 void nodeGeometryUpdated(QSGNode *node);
64 void nodeMaterialUpdated(QSGNode *node);
65 void nodeMatrixUpdated(QSGNode *node);
66 void nodeOpacityUpdated(QSGNode *node);
68 QHash<QSGNode*, QSGSoftwareRenderableNode*> m_nodes;
69 QList<QSGSoftwareRenderableNode*> m_renderableNodes;
71 QSGSimpleRectNode *m_background;
73 QRegion m_dirtyRegion;
74 QRegion m_obscuredRegion;
75 qreal m_devicePixelRatio = 1;
76 bool m_isOpaque =
false;
77 bool m_clearColorEnabled =
true;
79 QSGSoftwareRenderableNodeUpdater *m_nodeUpdater;