/* * Copyright 2011 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "SkProxyCanvas.h" SkProxyCanvas::SkProxyCanvas(SkCanvas* proxy) : fProxy(proxy) { SkSafeRef(fProxy); } SkProxyCanvas::~SkProxyCanvas() { SkSafeUnref(fProxy); } void SkProxyCanvas::setProxy(SkCanvas* proxy) { SkRefCnt_SafeAssign(fProxy, proxy); } ///////////////////////////////// Overrides /////////// void SkProxyCanvas::willSave() { fProxy->save(); this->INHERITED::willSave(); } SkCanvas::SaveLayerStrategy SkProxyCanvas::willSaveLayer(const SkRect* bounds, const SkPaint* paint, SaveFlags flags) { fProxy->saveLayer(bounds, paint, flags); this->INHERITED::willSaveLayer(bounds, paint, flags); // No need for a layer. return kNoLayer_SaveLayerStrategy; } void SkProxyCanvas::willRestore() { fProxy->restore(); this->INHERITED::willRestore(); } void SkProxyCanvas::didConcat(const SkMatrix& matrix) { fProxy->concat(matrix); this->INHERITED::didConcat(matrix); } void SkProxyCanvas::didSetMatrix(const SkMatrix& matrix) { fProxy->setMatrix(matrix); this->INHERITED::didSetMatrix(matrix); } void SkProxyCanvas::onClipRect(const SkRect& rect, SkRegion::Op op, ClipEdgeStyle edgeStyle) { fProxy->clipRect(rect, op, kSoft_ClipEdgeStyle == edgeStyle); } void SkProxyCanvas::onClipRRect(const SkRRect& rrect, SkRegion::Op op, ClipEdgeStyle edgeStyle) { fProxy->clipRRect(rrect, op, kSoft_ClipEdgeStyle == edgeStyle); } void SkProxyCanvas::onClipPath(const SkPath& path, SkRegion::Op op, ClipEdgeStyle edgeStyle) { fProxy->clipPath(path, op, kSoft_ClipEdgeStyle == edgeStyle); } void SkProxyCanvas::onClipRegion(const SkRegion& deviceRgn, SkRegion::Op op) { fProxy->clipRegion(deviceRgn, op); } void SkProxyCanvas::drawPaint(const SkPaint& paint) { fProxy->drawPaint(paint); } void SkProxyCanvas::drawPoints(PointMode mode, size_t count, const SkPoint pts[], const SkPaint& paint) { fProxy->drawPoints(mode, count, pts, paint); } void SkProxyCanvas::drawOval(const SkRect& rect, const SkPaint& paint) { fProxy->drawOval(rect, paint); } void SkProxyCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { fProxy->drawRect(rect, paint); } void SkProxyCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { fProxy->drawRRect(rrect, paint); } void SkProxyCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, const SkPaint& paint) { fProxy->drawDRRect(outer, inner, paint); } void SkProxyCanvas::drawPath(const SkPath& path, const SkPaint& paint) { fProxy->drawPath(path, paint); } void SkProxyCanvas::drawBitmap(const SkBitmap& bitmap, SkScalar x, SkScalar y, const SkPaint* paint) { fProxy->drawBitmap(bitmap, x, y, paint); } void SkProxyCanvas::drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src, const SkRect& dst, const SkPaint* paint, DrawBitmapRectFlags flags) { fProxy->drawBitmapRectToRect(bitmap, src, dst, paint, flags); } void SkProxyCanvas::drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m, const SkPaint* paint) { fProxy->drawBitmapMatrix(bitmap, m, paint); } void SkProxyCanvas::drawSprite(const SkBitmap& bitmap, int x, int y, const SkPaint* paint) { fProxy->drawSprite(bitmap, x, y, paint); } void SkProxyCanvas::onDrawText(const void* text, size_t byteLength, SkScalar x, SkScalar y, const SkPaint& paint) { fProxy->drawText(text, byteLength, x, y, paint); } void SkProxyCanvas::onDrawPosText(const void* text, size_t byteLength, const SkPoint pos[], const SkPaint& paint) { fProxy->drawPosText(text, byteLength, pos, paint); } void SkProxyCanvas::onDrawPosTextH(const void* text, size_t byteLength, const SkScalar xpos[], SkScalar constY, const SkPaint& paint) { fProxy->drawPosTextH(text, byteLength, xpos, constY, paint); } void SkProxyCanvas::onDrawTextOnPath(const void* text, size_t byteLength, const SkPath& path, const SkMatrix* matrix, const SkPaint& paint) { fProxy->drawTextOnPath(text, byteLength, path, matrix, paint); } void SkProxyCanvas::onDrawPicture(const SkPicture* picture) { fProxy->drawPicture(picture); } void SkProxyCanvas::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) { fProxy->drawVertices(vmode, vertexCount, vertices, texs, colors, xmode, indices, indexCount, paint); } void SkProxyCanvas::drawPatch(const SkPatch& patch, const SkPaint& paint) { fProxy->drawPatch(patch, paint); } void SkProxyCanvas::drawData(const void* data, size_t length) { fProxy->drawData(data, length); } void SkProxyCanvas::beginCommentGroup(const char* description) { fProxy->beginCommentGroup(description); } void SkProxyCanvas::addComment(const char* kywd, const char* value) { fProxy->addComment(kywd, value); } void SkProxyCanvas::endCommentGroup() { fProxy->endCommentGroup(); } SkDrawFilter* SkProxyCanvas::setDrawFilter(SkDrawFilter* filter) { return fProxy->setDrawFilter(filter); }