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