diff options
Diffstat (limited to 'src/quick/items/context2d/qquickcontext2dcommandbuffer.cpp')
-rw-r--r-- | src/quick/items/context2d/qquickcontext2dcommandbuffer.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/quick/items/context2d/qquickcontext2dcommandbuffer.cpp b/src/quick/items/context2d/qquickcontext2dcommandbuffer.cpp index 30895d9b0e..55ebbe907c 100644 --- a/src/quick/items/context2d/qquickcontext2dcommandbuffer.cpp +++ b/src/quick/items/context2d/qquickcontext2dcommandbuffer.cpp @@ -192,6 +192,10 @@ QPen QQuickContext2DCommandBuffer::makePen(const QQuickContext2D::State& state) pen.setJoinStyle(state.lineJoin); pen.setMiterLimit(state.miterLimit); pen.setBrush(state.strokeStyle); + if (!state.lineDash.isEmpty()) { + pen.setDashPattern(state.lineDash); + } + pen.setDashOffset(state.lineDashOffset); return pen; } @@ -361,6 +365,28 @@ void QQuickContext2DCommandBuffer::replay(QPainter* p, QQuickContext2D::State& s p->setPen(nPen); break; } + case QQuickContext2D::LineDash: + { + const qreal count = takeReal(); + QVector<qreal> pattern; + pattern.reserve(count); + for (uint i = 0; i < count; i++) { + pattern.append(takeReal()); + } + state.lineDash = pattern; + QPen nPen = p->pen(); + nPen.setDashPattern(pattern); + p->setPen(nPen); + break; + } + case QQuickContext2D::LineDashOffset: + { + state.lineDashOffset = takeReal(); + QPen nPen = p->pen(); + nPen.setDashOffset(state.lineDashOffset); + p->setPen(nPen); + break; + } case QQuickContext2D::MiterLimit: { state.miterLimit = takeMiterLimit(); |