4#ifndef QQUICKSHAPECURVERENDERER_P_H
5#define QQUICKSHAPECURVERENDERER_P_H
18#include <QtQuickShapes/private/qquickshapesglobal_p.h>
19#include <QtQuickShapes/private/qquickshape_p_p.h>
20#include <QtQuick/private/qquadpath_p.h>
21#include <QtQuick/private/qsgcurveabstractnode_p.h>
22#include <QtQuick/private/qsggradientcache_p.h>
28#include <QtCore/qrunnable.h>
31#include <QtGui/private/qtriangulator_p.h>
32#include <QtQuick/private/qsgcurvefillnode_p.h>
46 void beginSync(
int totalCount,
bool *countChanged)
override;
56 qreal dashOffset,
const QVector<qreal> &dashPattern)
override;
59 void endSync(
bool async)
override;
60 void setAsyncCallback(
void (*)(
void *),
void *)
override;
63 void updateNode()
override;
65 void setRootNode(
QSGNode *node);
67 using NodeList = QVector<QSGCurveAbstractNode *>;
83 static int debugVisualization();
84 static void setDebugVisualization(
int options);
91 bool isStrokeVisible()
const
93 return validPenWidth && pen.color().alpha() > 0 && pen.style() !=
Qt::NoPen;
102 bool validPenWidth =
true;
104 QQuickShapePath::PathHints pathHints;
117 void createRunner(PathData *pathData);
118 void maybeUpdateAsyncItem();
120 static void processPath(PathData *pathData);
121 static NodeList addFillNodes(
const PathData &pathData);
122 static NodeList addTriangulatingStrokerNodes(
const PathData &pathData);
123 static NodeList addCurveStrokeNodes(
const PathData &pathData);
128 QVector<PathData> m_paths;
129 void (*m_asyncCallback)(
void *) =
nullptr;
130 void *m_asyncCallbackData =
nullptr;
131 static int debugVisualizationFlags;
The QColor class provides colors based on RGB, HSV or CMYK values.
Type
Specifies the type of gradient.
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
QQuickShapeCurveRenderer(QQuickItem *item)
QVector< QSGCurveAbstractNode * > NodeList
Flags flags() const override
QQuickShapeCurveRenderer::PathData pathData
void done(QQuickShapeCurveRunnable *self)
void run() override
Implement this pure virtual function in your subclass.
\group qtquick-scenegraph-nodes \title Qt Quick Scene Graph Node classes
Combined button and popup list for selecting options.
std::vector< Node > NodeList
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
GLfloat GLfloat GLfloat w
[0]
GLuint GLenum GLenum transform
GLsizei const GLchar *const * path
static void setCapStyle(int cap_style, GC gc)