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