1
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 */
8#include "SkProxyCanvas.h"
9
10SkProxyCanvas::SkProxyCanvas(SkCanvas* proxy) : fProxy(proxy) {
11    SkSafeRef(fProxy);
12}
13
14SkProxyCanvas::~SkProxyCanvas() {
15    SkSafeUnref(fProxy);
16}
17
18void SkProxyCanvas::setProxy(SkCanvas* proxy) {
19    SkRefCnt_SafeAssign(fProxy, proxy);
20}
21
22///////////////////////////////// Overrides ///////////
23
24int SkProxyCanvas::save(SaveFlags flags) {
25    return fProxy->save(flags);
26}
27
28int SkProxyCanvas::saveLayer(const SkRect* bounds, const SkPaint* paint,
29                             SaveFlags flags) {
30    return fProxy->saveLayer(bounds, paint, flags);
31}
32
33void SkProxyCanvas::restore() {
34    fProxy->restore();
35}
36
37bool SkProxyCanvas::translate(SkScalar dx, SkScalar dy) {
38    return fProxy->translate(dx, dy);
39}
40
41bool SkProxyCanvas::scale(SkScalar sx, SkScalar sy) {
42    return fProxy->scale(sx, sy);
43}
44
45bool SkProxyCanvas::rotate(SkScalar degrees) {
46    return fProxy->rotate(degrees);
47}
48
49bool SkProxyCanvas::skew(SkScalar sx, SkScalar sy) {
50    return fProxy->skew(sx, sy);
51}
52
53bool SkProxyCanvas::concat(const SkMatrix& matrix) {
54    return fProxy->concat(matrix);
55}
56
57void SkProxyCanvas::setMatrix(const SkMatrix& matrix) {
58    fProxy->setMatrix(matrix);
59}
60
61bool SkProxyCanvas::clipRect(const SkRect& rect, SkRegion::Op op, bool doAA) {
62    return fProxy->clipRect(rect, op, doAA);
63}
64
65bool SkProxyCanvas::clipRRect(const SkRRect& rrect, SkRegion::Op op, bool doAA) {
66    return fProxy->clipRRect(rrect, op, doAA);
67}
68
69bool SkProxyCanvas::clipPath(const SkPath& path, SkRegion::Op op, bool doAA) {
70    return fProxy->clipPath(path, op, doAA);
71}
72
73bool SkProxyCanvas::clipRegion(const SkRegion& deviceRgn, SkRegion::Op op) {
74    return fProxy->clipRegion(deviceRgn, op);
75}
76
77void SkProxyCanvas::drawPaint(const SkPaint& paint) {
78    fProxy->drawPaint(paint);
79}
80
81void SkProxyCanvas::drawPoints(PointMode mode, size_t count,
82                               const SkPoint pts[], const SkPaint& paint) {
83    fProxy->drawPoints(mode, count, pts, paint);
84}
85
86void SkProxyCanvas::drawOval(const SkRect& rect, const SkPaint& paint) {
87    fProxy->drawOval(rect, paint);
88}
89
90void SkProxyCanvas::drawRect(const SkRect& rect, const SkPaint& paint) {
91    fProxy->drawRect(rect, paint);
92}
93
94void SkProxyCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) {
95    fProxy->drawRRect(rrect, paint);
96}
97
98void SkProxyCanvas::drawPath(const SkPath& path, const SkPaint& paint) {
99    fProxy->drawPath(path, paint);
100}
101
102void SkProxyCanvas::drawBitmap(const SkBitmap& bitmap, SkScalar x, SkScalar y,
103                               const SkPaint* paint) {
104    fProxy->drawBitmap(bitmap, x, y, paint);
105}
106
107void SkProxyCanvas::drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src,
108                                   const SkRect& dst, const SkPaint* paint) {
109    fProxy->drawBitmapRectToRect(bitmap, src, dst, paint);
110}
111
112void SkProxyCanvas::drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m,
113                                     const SkPaint* paint) {
114    fProxy->drawBitmapMatrix(bitmap, m, paint);
115}
116
117void SkProxyCanvas::drawSprite(const SkBitmap& bitmap, int x, int y,
118                               const SkPaint* paint) {
119    fProxy->drawSprite(bitmap, x, y, paint);
120}
121
122void SkProxyCanvas::drawText(const void* text, size_t byteLength, SkScalar x,
123                             SkScalar y, const SkPaint& paint) {
124    fProxy->drawText(text, byteLength, x, y, paint);
125}
126
127void SkProxyCanvas::drawPosText(const void* text, size_t byteLength,
128                                const SkPoint pos[], const SkPaint& paint) {
129    fProxy->drawPosText(text, byteLength, pos, paint);
130}
131
132void SkProxyCanvas::drawPosTextH(const void* text, size_t byteLength,
133                                 const SkScalar xpos[], SkScalar constY,
134                                 const SkPaint& paint) {
135    fProxy->drawPosTextH(text, byteLength, xpos, constY, paint);
136}
137
138void SkProxyCanvas::drawTextOnPath(const void* text, size_t byteLength,
139                                   const SkPath& path, const SkMatrix* matrix,
140                                   const SkPaint& paint) {
141    fProxy->drawTextOnPath(text, byteLength, path, matrix, paint);
142}
143
144void SkProxyCanvas::drawPicture(SkPicture& picture) {
145    fProxy->drawPicture(picture);
146}
147
148void SkProxyCanvas::drawVertices(VertexMode vmode, int vertexCount,
149                                 const SkPoint vertices[], const SkPoint texs[],
150                                 const SkColor colors[], SkXfermode* xmode,
151                                 const uint16_t indices[], int indexCount,
152                                 const SkPaint& paint) {
153    fProxy->drawVertices(vmode, vertexCount, vertices, texs, colors,
154                                     xmode, indices, indexCount, paint);
155}
156
157void SkProxyCanvas::drawData(const void* data, size_t length) {
158    fProxy->drawData(data, length);
159}
160
161void SkProxyCanvas::beginCommentGroup(const char* description) {
162    fProxy->beginCommentGroup(description);
163}
164
165void SkProxyCanvas::addComment(const char* kywd, const char* value) {
166    fProxy->addComment(kywd, value);
167}
168
169void SkProxyCanvas::endCommentGroup() {
170    fProxy->endCommentGroup();
171}
172
173SkBounder* SkProxyCanvas::setBounder(SkBounder* bounder) {
174    return fProxy->setBounder(bounder);
175}
176
177SkDrawFilter* SkProxyCanvas::setDrawFilter(SkDrawFilter* filter) {
178    return fProxy->setDrawFilter(filter);
179}
180