35 enum MatrixTransformFlag
37 MatrixTransformFlipY = 0x01
39 Q_DECLARE_FLAGS(MatrixTransformFlags, MatrixTransformFlag)
40 Q_FLAG(MatrixTransformFlags)
42 ~QSGAbstractRenderer() override;
44 void setRootNode(QSGRootNode *node);
45 QSGRootNode *rootNode()
const;
46 void setDeviceRect(
const QRect &rect);
47 inline void setDeviceRect(
const QSize &size) { setDeviceRect(QRect(QPoint(), size)); }
48 QRect deviceRect()
const;
50 void setViewportRect(
const QRect &rect);
51 inline void setViewportRect(
const QSize &size) { setViewportRect(QRect(QPoint(), size)); }
52 QRect viewportRect()
const;
54 void setProjectionMatrixToRect(
const QRectF &rect);
55 void setProjectionMatrixToRect(
const QRectF &rect, MatrixTransformFlags flags);
56 void setProjectionMatrixToRect(
const QRectF &rect, MatrixTransformFlags flags,
58 void setProjectionMatrix(
const QMatrix4x4 &matrix,
int index = 0);
59 void setProjectionMatrixWithNativeNDC(
const QMatrix4x4 &matrix,
int index = 0);
60 QMatrix4x4 projectionMatrix(
int index)
const;
61 QMatrix4x4 projectionMatrixWithNativeNDC(
int index)
const;
62 int projectionMatrixCount()
const;
63 int projectionMatrixWithNativeNDCCount()
const;
64 void setInvertFrontFace(
bool invert);
65 bool invertFrontFace()
const;
67 void setClearColor(
const QColor &color);
68 QColor clearColor()
const;
70 virtual void renderScene() = 0;
72 virtual void prepareSceneInline();
73 virtual void renderSceneInline();
76 void sceneGraphChanged();
79 explicit QSGAbstractRenderer(QObject *parent =
nullptr);
80 virtual void nodeChanged(QSGNode *node, QSGNode::DirtyState state) = 0;
83 Q_DECLARE_PRIVATE(QSGAbstractRenderer)
84 friend class QSGRootNode;