blob: a32819d7905139772fb4f38663ad8344a548608c [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
2/*
3 * Copyright 2011 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
reed@android.com8a1c16f2008-12-17 15:59:43 +00008#include "SkProxyCanvas.h"
9
10SkProxyCanvas::SkProxyCanvas(SkCanvas* proxy) : fProxy(proxy) {
reed@google.com82065d62011-02-07 15:30:46 +000011 SkSafeRef(fProxy);
reed@android.com8a1c16f2008-12-17 15:59:43 +000012}
13
14SkProxyCanvas::~SkProxyCanvas() {
reed@google.com82065d62011-02-07 15:30:46 +000015 SkSafeUnref(fProxy);
reed@android.com8a1c16f2008-12-17 15:59:43 +000016}
reed@google.com82065d62011-02-07 15:30:46 +000017
reed@android.com8a1c16f2008-12-17 15:59:43 +000018void SkProxyCanvas::setProxy(SkCanvas* proxy) {
19 SkRefCnt_SafeAssign(fProxy, proxy);
20}
21
22///////////////////////////////// Overrides ///////////
23
commit-bot@chromium.orge54a23f2014-03-12 20:21:48 +000024void SkProxyCanvas::willSave(SaveFlags flags) {
25 fProxy->save(flags);
26 this->INHERITED::willSave(flags);
reed@android.com8a1c16f2008-12-17 15:59:43 +000027}
28
commit-bot@chromium.orge54a23f2014-03-12 20:21:48 +000029SkCanvas::SaveLayerStrategy SkProxyCanvas::willSaveLayer(const SkRect* bounds, const SkPaint* paint,
30 SaveFlags flags) {
31 fProxy->saveLayer(bounds, paint, flags);
32 this->INHERITED::willSaveLayer(bounds, paint, flags);
33 // No need for a layer.
34 return kNoLayer_SaveLayerStrategy;
reed@android.com8a1c16f2008-12-17 15:59:43 +000035}
36
commit-bot@chromium.orge54a23f2014-03-12 20:21:48 +000037void SkProxyCanvas::willRestore() {
reed@android.com8a1c16f2008-12-17 15:59:43 +000038 fProxy->restore();
commit-bot@chromium.orge54a23f2014-03-12 20:21:48 +000039 this->INHERITED::willRestore();
reed@android.com8a1c16f2008-12-17 15:59:43 +000040}
41
42bool SkProxyCanvas::translate(SkScalar dx, SkScalar dy) {
43 return fProxy->translate(dx, dy);
44}
45
46bool SkProxyCanvas::scale(SkScalar sx, SkScalar sy) {
47 return fProxy->scale(sx, sy);
48}
49
50bool SkProxyCanvas::rotate(SkScalar degrees) {
51 return fProxy->rotate(degrees);
52}
53
54bool SkProxyCanvas::skew(SkScalar sx, SkScalar sy) {
55 return fProxy->skew(sx, sy);
56}
57
58bool SkProxyCanvas::concat(const SkMatrix& matrix) {
59 return fProxy->concat(matrix);
60}
61
62void SkProxyCanvas::setMatrix(const SkMatrix& matrix) {
63 fProxy->setMatrix(matrix);
64}
65
robertphillips@google.com8f90a892014-02-28 18:19:39 +000066void SkProxyCanvas::onClipRect(const SkRect& rect, SkRegion::Op op, ClipEdgeStyle edgeStyle) {
67 fProxy->clipRect(rect, op, kSoft_ClipEdgeStyle == edgeStyle);
reed@android.com8a1c16f2008-12-17 15:59:43 +000068}
69
robertphillips@google.com8f90a892014-02-28 18:19:39 +000070void SkProxyCanvas::onClipRRect(const SkRRect& rrect, SkRegion::Op op, ClipEdgeStyle edgeStyle) {
71 fProxy->clipRRect(rrect, op, kSoft_ClipEdgeStyle == edgeStyle);
reed@google.com4ed0fb72012-12-12 20:48:18 +000072}
73
robertphillips@google.com8f90a892014-02-28 18:19:39 +000074void SkProxyCanvas::onClipPath(const SkPath& path, SkRegion::Op op, ClipEdgeStyle edgeStyle) {
75 fProxy->clipPath(path, op, kSoft_ClipEdgeStyle == edgeStyle);
reed@android.com8a1c16f2008-12-17 15:59:43 +000076}
77
robertphillips@google.com8f90a892014-02-28 18:19:39 +000078void SkProxyCanvas::onClipRegion(const SkRegion& deviceRgn, SkRegion::Op op) {
79 fProxy->clipRegion(deviceRgn, op);
reed@android.com8a1c16f2008-12-17 15:59:43 +000080}
81
82void SkProxyCanvas::drawPaint(const SkPaint& paint) {
83 fProxy->drawPaint(paint);
84}
85
86void SkProxyCanvas::drawPoints(PointMode mode, size_t count,
87 const SkPoint pts[], const SkPaint& paint) {
88 fProxy->drawPoints(mode, count, pts, paint);
89}
90
reed@google.com4ed0fb72012-12-12 20:48:18 +000091void SkProxyCanvas::drawOval(const SkRect& rect, const SkPaint& paint) {
92 fProxy->drawOval(rect, paint);
93}
94
bsalomon@google.com7ce564c2013-10-22 16:54:15 +000095void SkProxyCanvas::drawRect(const SkRect& rect, const SkPaint& paint) {
reed@android.com8a1c16f2008-12-17 15:59:43 +000096 fProxy->drawRect(rect, paint);
97}
98
reed@google.com4ed0fb72012-12-12 20:48:18 +000099void SkProxyCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) {
100 fProxy->drawRRect(rrect, paint);
101}
102
commit-bot@chromium.orgab582732014-02-21 12:20:45 +0000103void SkProxyCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner,
104 const SkPaint& paint) {
105 fProxy->drawDRRect(outer, inner, paint);
106}
107
bsalomon@google.com7ce564c2013-10-22 16:54:15 +0000108void SkProxyCanvas::drawPath(const SkPath& path, const SkPaint& paint) {
reed@android.com8a1c16f2008-12-17 15:59:43 +0000109 fProxy->drawPath(path, paint);
110}
111
112void SkProxyCanvas::drawBitmap(const SkBitmap& bitmap, SkScalar x, SkScalar y,
113 const SkPaint* paint) {
114 fProxy->drawBitmap(bitmap, x, y, paint);
115}
116
reed@google.com71121732012-09-18 15:14:33 +0000117void SkProxyCanvas::drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src,
commit-bot@chromium.orgeed779d2013-08-16 10:24:37 +0000118 const SkRect& dst, const SkPaint* paint,
119 DrawBitmapRectFlags flags) {
120 fProxy->drawBitmapRectToRect(bitmap, src, dst, paint, flags);
reed@android.com8a1c16f2008-12-17 15:59:43 +0000121}
122
123void SkProxyCanvas::drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m,
124 const SkPaint* paint) {
125 fProxy->drawBitmapMatrix(bitmap, m, paint);
126}
127
128void SkProxyCanvas::drawSprite(const SkBitmap& bitmap, int x, int y,
129 const SkPaint* paint) {
130 fProxy->drawSprite(bitmap, x, y, paint);
131}
132
133void SkProxyCanvas::drawText(const void* text, size_t byteLength, SkScalar x,
134 SkScalar y, const SkPaint& paint) {
135 fProxy->drawText(text, byteLength, x, y, paint);
136}
137
138void SkProxyCanvas::drawPosText(const void* text, size_t byteLength,
139 const SkPoint pos[], const SkPaint& paint) {
140 fProxy->drawPosText(text, byteLength, pos, paint);
141}
142
143void SkProxyCanvas::drawPosTextH(const void* text, size_t byteLength,
144 const SkScalar xpos[], SkScalar constY,
145 const SkPaint& paint) {
146 fProxy->drawPosTextH(text, byteLength, xpos, constY, paint);
147}
148
149void SkProxyCanvas::drawTextOnPath(const void* text, size_t byteLength,
150 const SkPath& path, const SkMatrix* matrix,
151 const SkPaint& paint) {
152 fProxy->drawTextOnPath(text, byteLength, path, matrix, paint);
153}
154
reed@android.comed0bfb02009-05-13 21:01:21 +0000155void SkProxyCanvas::drawPicture(SkPicture& picture) {
156 fProxy->drawPicture(picture);
157}
158
reed@android.com8a1c16f2008-12-17 15:59:43 +0000159void SkProxyCanvas::drawVertices(VertexMode vmode, int vertexCount,
160 const SkPoint vertices[], const SkPoint texs[],
161 const SkColor colors[], SkXfermode* xmode,
162 const uint16_t indices[], int indexCount,
163 const SkPaint& paint) {
164 fProxy->drawVertices(vmode, vertexCount, vertices, texs, colors,
165 xmode, indices, indexCount, paint);
166}
167
reed@android.comcb608442009-12-04 21:32:27 +0000168void SkProxyCanvas::drawData(const void* data, size_t length) {
169 fProxy->drawData(data, length);
170}
171
robertphillips@google.com0a4805e2013-05-29 13:24:23 +0000172void SkProxyCanvas::beginCommentGroup(const char* description) {
173 fProxy->beginCommentGroup(description);
174}
175
176void SkProxyCanvas::addComment(const char* kywd, const char* value) {
177 fProxy->addComment(kywd, value);
178}
179
180void SkProxyCanvas::endCommentGroup() {
181 fProxy->endCommentGroup();
182}
183
reed@android.com8a1c16f2008-12-17 15:59:43 +0000184SkBounder* SkProxyCanvas::setBounder(SkBounder* bounder) {
185 return fProxy->setBounder(bounder);
186}
187
188SkDrawFilter* SkProxyCanvas::setDrawFilter(SkDrawFilter* filter) {
189 return fProxy->setDrawFilter(filter);
190}