53#if QT_CONFIG(quick_sprite)
59 QSGSoftwareRenderableNode(NodeType type, QSGNode *node);
60 ~QSGSoftwareRenderableNode();
64 QRegion renderNode(QPainter *painter,
bool forceOpaquePainting =
false);
65 QRect boundingRectMin()
const {
return m_boundingRectMin; }
66 QRect boundingRectMax()
const {
return m_boundingRectMax; }
67 NodeType type()
const {
return m_nodeType; }
68 bool isOpaque()
const {
return m_isOpaque; }
69 bool isDirty()
const {
return m_isDirty; }
70 bool isDirtyRegionEmpty()
const;
71 QSGNode *handle()
const {
return m_handle.node; }
73 void setTransform(
const QTransform &transform);
74 void setClipRegion(
const QRegion &clipRegion,
bool hasClipRegion =
true);
75 void setOpacity(
float opacity);
76 QTransform transform()
const {
return m_transform; }
77 QRegion clipRegion()
const {
return m_clipRegion; }
78 float opacity()
const {
return m_opacity; }
80 void markGeometryDirty();
81 void markMaterialDirty();
83 void addDirtyRegion(
const QRegion &dirtyRegion,
bool forceDirty =
true);
84 void subtractDirtyRegion(
const QRegion &dirtyRegion);
86 QRegion previousDirtyRegion(
bool wasRemoved =
false)
const;
87 QRegion dirtyRegion()
const;
90 union RenderableNodeHandle {
92 QSGSimpleRectNode *simpleRectNode;
93 QSGSimpleTextureNode *simpleTextureNode;
94 QSGSoftwareInternalImageNode *imageNode;
95 QSGSoftwarePainterNode *painterNode;
96 QSGSoftwareInternalRectangleNode *rectangleNode;
97 QSGSoftwareGlyphNode *glpyhNode;
98 QSGSoftwareNinePatchNode *ninePatchNode;
99 QSGRectangleNode *simpleRectangleNode;
100 QSGImageNode *simpleImageNode;
101 QSGSoftwareSpriteNode *spriteNode;
102 QSGRenderNode *renderNode;
105 const NodeType m_nodeType;
106 RenderableNodeHandle m_handle;
111 QRegion m_dirtyRegion;
112 QRegion m_previousDirtyRegion;
114 QTransform m_transform;
115 QRegion m_clipRegion;
116 bool m_hasClipRegion;
119 QRect m_boundingRectMin;
120 QRect m_boundingRectMax;