SkNWayCanvas.h revision 7765000709dc64eb23be7df47d1f995d1f787115
16c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2011 Google Inc. 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */ 8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 96c924ad46c89955e78e071c792ef00df9910b42freed@android.com#ifndef SkNWayCanvas_DEFINED 106c924ad46c89955e78e071c792ef00df9910b42freed@android.com#define SkNWayCanvas_DEFINED 116c924ad46c89955e78e071c792ef00df9910b42freed@android.com 126c924ad46c89955e78e071c792ef00df9910b42freed@android.com#include "SkCanvas.h" 13d3ebb48320cf1b7e969974673e4bd7743816985ebungeman#include "SkTDArray.h" 146c924ad46c89955e78e071c792ef00df9910b42freed@android.com 15e1a81d2e22bc7221afdc200f372295b2510ab68bcommit-bot@chromium.orgclass SK_API SkNWayCanvas : public SkCanvas { 166c924ad46c89955e78e071c792ef00df9910b42freed@android.compublic: 17f0a062bc4573323abcf37394bb68e0230347a974djsollen@google.com SkNWayCanvas(int width, int height); 186c924ad46c89955e78e071c792ef00df9910b42freed@android.com virtual ~SkNWayCanvas(); 1974b461961607fa57a150a9282c410ef0cab38764vandebo@chromium.org 20339e79fbeabae18a8b9ea094293c7c25eaf9dd68djsollen@google.com virtual void addCanvas(SkCanvas*); 21339e79fbeabae18a8b9ea094293c7c25eaf9dd68djsollen@google.com virtual void removeCanvas(SkCanvas*); 22339e79fbeabae18a8b9ea094293c7c25eaf9dd68djsollen@google.com virtual void removeAll(); 236c924ad46c89955e78e071c792ef00df9910b42freed@android.com 246c924ad46c89955e78e071c792ef00df9910b42freed@android.com /////////////////////////////////////////////////////////////////////////// 256c924ad46c89955e78e071c792ef00df9910b42freed@android.com // These are forwarded to the N canvases we're referencing 266c924ad46c89955e78e071c792ef00df9910b42freed@android.com 277765000709dc64eb23be7df47d1f995d1f787115fmalita#ifdef SK_SUPPORT_LEGACY_DRAWFLTER 2836352bf5e38f45a70ee4f4fc132a38048d38206dmtklein SkDrawFilter* setDrawFilter(SkDrawFilter*) override; 297765000709dc64eb23be7df47d1f995d1f787115fmalita#endif 3074b461961607fa57a150a9282c410ef0cab38764vandebo@chromium.org 31339e79fbeabae18a8b9ea094293c7c25eaf9dd68djsollen@google.comprotected: 326c924ad46c89955e78e071c792ef00df9910b42freed@android.com SkTDArray<SkCanvas*> fList; 3374b461961607fa57a150a9282c410ef0cab38764vandebo@chromium.org 3436352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void willSave() override; 354960eeec4a1f2a772654883d7f3615d47bcd5dc3reed SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec&) override; 3636352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void willRestore() override; 37e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.org 3836352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void didConcat(const SkMatrix&) override; 3936352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void didSetMatrix(const SkMatrix&) override; 4044c48d062f7996b5b46917e1b312a32ad101f326commit-bot@chromium.org 4136352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) override; 42e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.com virtual void onDrawText(const void* text, size_t byteLength, SkScalar x, SkScalar y, 4336352bf5e38f45a70ee4f4fc132a38048d38206dmtklein const SkPaint&) override; 44e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.com virtual void onDrawPosText(const void* text, size_t byteLength, const SkPoint pos[], 4536352bf5e38f45a70ee4f4fc132a38048d38206dmtklein const SkPaint&) override; 46e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.com virtual void onDrawPosTextH(const void* text, size_t byteLength, const SkScalar xpos[], 4736352bf5e38f45a70ee4f4fc132a38048d38206dmtklein SkScalar constY, const SkPaint&) override; 48e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.com virtual void onDrawTextOnPath(const void* text, size_t byteLength, const SkPath& path, 4936352bf5e38f45a70ee4f4fc132a38048d38206dmtklein const SkMatrix* matrix, const SkPaint&) override; 50b7425173f96e93b090787e2386ba5f022b6c2869fmalita virtual void onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, 5136352bf5e38f45a70ee4f4fc132a38048d38206dmtklein const SkPaint& paint) override; 52b3c9d1c33caf325aada244204215eb790c228c12dandov virtual void onDrawPatch(const SkPoint cubics[12], const SkColor colors[4], 53b3c9d1c33caf325aada244204215eb790c228c12dandov const SkPoint texCoords[4], SkXfermode* xmode, 5436352bf5e38f45a70ee4f4fc132a38048d38206dmtklein const SkPaint& paint) override; 5536352bf5e38f45a70ee4f4fc132a38048d38206dmtklein 5636352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onDrawPaint(const SkPaint&) override; 5736352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onDrawPoints(PointMode, size_t count, const SkPoint pts[], const SkPaint&) override; 5836352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onDrawRect(const SkRect&, const SkPaint&) override; 5936352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onDrawOval(const SkRect&, const SkPaint&) override; 6036352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onDrawRRect(const SkRRect&, const SkPaint&) override; 6136352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onDrawPath(const SkPath&, const SkPaint&) override; 6236352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onDrawBitmap(const SkBitmap&, SkScalar left, SkScalar top, const SkPaint*) override; 6341af966ab338e95eee81ab618ab28195075338f7reed void onDrawBitmapRect(const SkBitmap&, const SkRect* src, const SkRect& dst, const SkPaint*, 64562fe4767cc73e08a4e039362bc0336aea66ecfbreed SrcRectConstraint) override; 6536352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onDrawImage(const SkImage*, SkScalar left, SkScalar top, const SkPaint*) override; 6641af966ab338e95eee81ab618ab28195075338f7reed void onDrawImageRect(const SkImage*, const SkRect* src, const SkRect& dst, 67562fe4767cc73e08a4e039362bc0336aea66ecfbreed const SkPaint*, SrcRectConstraint) override; 6841af966ab338e95eee81ab618ab28195075338f7reed void onDrawBitmapNine(const SkBitmap&, const SkIRect& center, const SkRect& dst, 6936352bf5e38f45a70ee4f4fc132a38048d38206dmtklein const SkPaint*) override; 7041af966ab338e95eee81ab618ab28195075338f7reed void onDrawVertices(VertexMode vmode, int vertexCount, 7141af966ab338e95eee81ab618ab28195075338f7reed const SkPoint vertices[], const SkPoint texs[], 7241af966ab338e95eee81ab618ab28195075338f7reed const SkColor colors[], SkXfermode* xmode, 7341af966ab338e95eee81ab618ab28195075338f7reed const uint16_t indices[], int indexCount, 7436352bf5e38f45a70ee4f4fc132a38048d38206dmtklein const SkPaint&) override; 7541af966ab338e95eee81ab618ab28195075338f7reed 7636352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onClipRect(const SkRect&, SkRegion::Op, ClipEdgeStyle) override; 7736352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onClipRRect(const SkRRect&, SkRegion::Op, ClipEdgeStyle) override; 7836352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onClipPath(const SkPath&, SkRegion::Op, ClipEdgeStyle) override; 7936352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onClipRegion(const SkRegion&, SkRegion::Op) override; 808f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.com 8136352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onDrawPicture(const SkPicture*, const SkMatrix*, const SkPaint*) override; 829b14f26d0f3a974f3dd626c8354e1db1cfcd322frobertphillips 836c924ad46c89955e78e071c792ef00df9910b42freed@android.com class Iter; 846c924ad46c89955e78e071c792ef00df9910b42freed@android.com 85339e79fbeabae18a8b9ea094293c7c25eaf9dd68djsollen@google.comprivate: 866c924ad46c89955e78e071c792ef00df9910b42freed@android.com typedef SkCanvas INHERITED; 876c924ad46c89955e78e071c792ef00df9910b42freed@android.com}; 886c924ad46c89955e78e071c792ef00df9910b42freed@android.com 896c924ad46c89955e78e071c792ef00df9910b42freed@android.com 906c924ad46c89955e78e071c792ef00df9910b42freed@android.com#endif 91