10#if QT_CONFIG(quick_sprite) 
   17#include <QtQuick/qsgsimplerectnode.h> 
   18#include <QtQuick/qsgsimpletexturenode.h> 
   19#include <QtQuick/qsgrendernode.h> 
   27    vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
 
   28    vgGetMatrix(
matrix.data());
 
   33    m_opacityState.
push(1.0f);
 
   43    m_transformStack.
push(m_transformStack.
top() * matrix2d);
 
   49    m_transformStack.
pop();
 
   54    VGMaskOperation maskOperation = VG_INTERSECT_MASK;
 
   55    if (m_clipStack.
count() == 0) {
 
   56        vgSeti(VG_MASKING, VG_TRUE);
 
   57        vgMask(0,VG_FILL_MASK, 0, 0, VG_MAXINT, VG_MAXINT);
 
   61    vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
 
   63    VGPath clipPath = generateClipPath(node->
clipRect());
 
   64    vgRenderToMask(clipPath, VG_FILL_PATH, maskOperation);
 
   66    m_clipStack.
push(clipPath);
 
   74    auto clipState = m_clipStack.
pop();
 
   75    vgDestroyPath(clipState);
 
   77    if (m_clipStack.
count() == 0) {
 
   78        vgSeti(VG_MASKING, VG_FALSE);
 
   81        vgMask(0,VG_FILL_MASK, 0, 0, VG_MAXINT, VG_MAXINT);
 
   82        vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
 
   84        for (
auto path : std::as_const(m_clipStack)) {
 
   85            vgRenderToMask(
path, VG_FILL_PATH, VG_INTERSECT_MASK);
 
  101        renderRenderableNode(nn);
 
  103        renderRenderableNode(rn);
 
  105        renderRenderableNode(
n);
 
  126    m_opacityState.
pop();
 
  178#if QT_CONFIG(quick_sprite) 
  199VGPath QSGOpenVGNodeVisitor::generateClipPath(
const QRectF &
rect)
 const 
  201    VGPath clipPath = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
 
  202                                   VG_PATH_CAPABILITY_APPEND_TO);
 
  205    static const VGubyte rectCommands[] = {
 
  221    coordinates[0] = bottomLeft.
x();
 
  222    coordinates[1] = bottomLeft.
y();
 
  223    coordinates[2] = bottomRight.
x();
 
  224    coordinates[3] = bottomRight.
y();
 
  225    coordinates[4] = topRight.
x();
 
  226    coordinates[5] = topRight.
y();
 
  227    coordinates[6] = topLeft.
x();
 
  228    coordinates[7] = topLeft.
y();
 
  230    vgAppendPathData(clipPath, 5, rectCommands, coordinates.constData());
 
const_pointer constData() const noexcept
 
qsizetype count() const noexcept
 
const float * constData() const
Returns a constant pointer to the raw data of this matrix.
 
\inmodule QtCore\reentrant
 
constexpr qreal x() const noexcept
Returns the x coordinate of this point.
 
constexpr qreal y() const noexcept
Returns the y coordinate of this point.
 
\inmodule QtCore\reentrant
 
The QSGClipNode class implements the clipping functionality in the scene graph.
 
QRectF clipRect() const
Returns the clip rect of this node.
 
The QSGGeometryNode class is used for all rendered content in the scene graph.
 
The QSGOpacityNode class is used to change opacity of nodes.
 
qreal opacity() const
Returns this opacity node's opacity.
 
void endVisit(QSGTransformNode *) override
 
bool visit(QSGTransformNode *) override
 
virtual void setTransform(const QOpenVGMatrix &transform)
 
virtual void setOpacity(float opacity)
 
The QSGRenderNode class represents a set of custom rendering commands targeting the graphics API that...
 
The QSGRootNode is the toplevel root of any scene graph.
 
The QSGSimpleRectNode class is a convenience class for drawing solid filled rectangles using scenegra...
 
The QSGSimpleTextureNode class is provided for convenience to easily draw textured content using the ...
 
T & top()
Returns a reference to the stack's top item.
 
T pop()
Removes the top item from the stack and returns it.
 
void push(const T &t)
Adds element t to the top of the stack.
 
Combined button and popup list for selecting options.
 
GLuint GLenum GLenum transform
 
GLsizei const GLchar *const  * path