SkDebugCanvas.h revision 8a1cdaece7e1d009befb84f21bb82370025bf4d6
1902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 2902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com/* 3902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * Copyright 2012 Google Inc. 4902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * 5902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * Use of this source code is governed by a BSD-style license that can be 6902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * found in the LICENSE file. 7902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 8902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 9902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 10902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#ifndef SKDEBUGCANVAS_H_ 11902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#define SKDEBUGCANVAS_H_ 12902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 13902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include "SkCanvas.h" 14902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include "SkDrawCommand.h" 15902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include "SkPicture.h" 168a1cdaece7e1d009befb84f21bb82370025bf4d6robertphillips@google.com#include "SkTArray.h" 1797cee9735350cb472249ce1a827ba1aa6b2a5f59chudy@google.com#include "SkString.h" 18902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 19902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.comclass SkDebugCanvas : public SkCanvas { 20902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.compublic: 2180a4a60f96c33ccd850f9b0eb4b69ab08c198196chudy@google.com SkDebugCanvas(int width, int height); 22902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com ~SkDebugCanvas(); 23902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 24902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com void toggleFilter(bool toggle); 25902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 26902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /** 27902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com Executes all draw calls to the canvas. 28902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com @param canvas The canvas being drawn to 29902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 30902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com void draw(SkCanvas* canvas); 31902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 32902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /** 33902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com Executes the draw calls in the specified range. 34902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com @param canvas The canvas being drawn to 35902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com @param i The beginning of the range 36902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com @param j The end of the range 37902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com TODO(chudy): Implement 38902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 39902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com void drawRange(SkCanvas* canvas, int i, int j); 40902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 41902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /** 42902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com Executes the draw calls up to the specified index. 43902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com @param canvas The canvas being drawn to 44902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com @param index The index of the final command being executed 45902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 460b5bbb0f82e022c8acfbcb6312f0ed18e1ab90cechudy@google.com void drawTo(SkCanvas* canvas, int index); 470b5bbb0f82e022c8acfbcb6312f0ed18e1ab90cechudy@google.com 480b5bbb0f82e022c8acfbcb6312f0ed18e1ab90cechudy@google.com /** 49a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com Returns the most recently calculated transformation matrix 50a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com */ 51a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com const SkMatrix& getCurrentMatrix() { 52a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com return fMatrix; 53a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com } 54a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com 55a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com /** 56a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com Returns the most recently calculated clip 57a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com */ 58a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com const SkIRect& getCurrentClip() { 59a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com return fClip; 60a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com } 61a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com 62a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com /** 630b5bbb0f82e022c8acfbcb6312f0ed18e1ab90cechudy@google.com Returns the index of the last draw command to write to the pixel at (x,y) 640b5bbb0f82e022c8acfbcb6312f0ed18e1ab90cechudy@google.com */ 65830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com int getCommandAtPoint(int x, int y, int index); 66902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 67902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /** 68902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com Returns the draw command at the given index. 69902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com @param index The index of the command 70902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 71902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com SkDrawCommand* getDrawCommandAt(int index); 72902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 73902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /** 74902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com Returns information about the command at the given index. 75902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com @param index The index of the command 76902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 7797cee9735350cb472249ce1a827ba1aa6b2a5f59chudy@google.com SkTDArray<SkString*>* getCommandInfo(int index); 78902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 79902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /** 807e4cfbf144af7d530d552946cee2a21d30b9b50fchudy@google.com Returns the visibility of the command at the given index. 817e4cfbf144af7d530d552946cee2a21d30b9b50fchudy@google.com @param index The index of the command 827e4cfbf144af7d530d552946cee2a21d30b9b50fchudy@google.com */ 837e4cfbf144af7d530d552946cee2a21d30b9b50fchudy@google.com bool getDrawCommandVisibilityAt(int index); 847e4cfbf144af7d530d552946cee2a21d30b9b50fchudy@google.com 857e4cfbf144af7d530d552946cee2a21d30b9b50fchudy@google.com /** 86902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com Returns the vector of draw commands 87902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 888a1cdaece7e1d009befb84f21bb82370025bf4d6robertphillips@google.com const SkTDArray<SkDrawCommand*>& getDrawCommands() const; 89902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 90902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /** 91902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com * Returns the string vector of draw commands 92902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 938a1cdaece7e1d009befb84f21bb82370025bf4d6robertphillips@google.com SkTArray<SkString>* getDrawCommandsAsStrings() const; 94902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 95902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /** 96f14143226acf209615c4dd841aa6632aff112ab3chudy@google.com Returns length of draw command vector. 97f14143226acf209615c4dd841aa6632aff112ab3chudy@google.com */ 98f14143226acf209615c4dd841aa6632aff112ab3chudy@google.com int getSize() { 9997cee9735350cb472249ce1a827ba1aa6b2a5f59chudy@google.com return commandVector.count(); 100f14143226acf209615c4dd841aa6632aff112ab3chudy@google.com } 101f14143226acf209615c4dd841aa6632aff112ab3chudy@google.com 102902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /** 103902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com Toggles the visibility / execution of the draw command at index i with 104902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com the value of toggle. 105902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 106902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com void toggleCommand(int index, bool toggle); 107902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 108b9ddd4e9f184f4a4545eca69c55ec1ad1ce59170chudy@google.com void setBounds(int width, int height) { 109b9ddd4e9f184f4a4545eca69c55ec1ad1ce59170chudy@google.com fWidth = width; 110b9ddd4e9f184f4a4545eca69c55ec1ad1ce59170chudy@google.com fHeight = height; 111b9ddd4e9f184f4a4545eca69c55ec1ad1ce59170chudy@google.com } 112b9ddd4e9f184f4a4545eca69c55ec1ad1ce59170chudy@google.com 113830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com void setUserOffset(SkIPoint offset) { 114830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com fUserOffset = offset; 115830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com } 116830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com 117830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com void setUserScale(float scale) { 118830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com fUserScale = scale; 119830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com } 120830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com 121902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com//////////////////////////////////////////////////////////////////////////////// 122902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com// Inherited from SkCanvas 123902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com//////////////////////////////////////////////////////////////////////////////// 124902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 125902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void clear(SkColor) SK_OVERRIDE; 126902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 127902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual bool clipPath(const SkPath&, SkRegion::Op, bool) SK_OVERRIDE; 128902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 129902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual bool clipRect(const SkRect&, SkRegion::Op, bool) SK_OVERRIDE; 130902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 131902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual bool clipRegion(const SkRegion& region, SkRegion::Op op) SK_OVERRIDE; 132902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 133902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual bool concat(const SkMatrix& matrix) SK_OVERRIDE; 134902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 135902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawBitmap(const SkBitmap&, SkScalar left, SkScalar top, 136902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkPaint*) SK_OVERRIDE; 137902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 1387112173c3c4cd1b1e7da8cdf971d71f01dd91299reed@google.com virtual void drawBitmapRectToRect(const SkBitmap&, const SkRect* src, 1397112173c3c4cd1b1e7da8cdf971d71f01dd91299reed@google.com const SkRect& dst, const SkPaint*) SK_OVERRIDE; 140902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 141902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawBitmapMatrix(const SkBitmap&, const SkMatrix&, 142902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkPaint*) SK_OVERRIDE; 143902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 144902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, 145902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkRect& dst, const SkPaint*) SK_OVERRIDE; 146902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 147902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawData(const void*, size_t) SK_OVERRIDE; 148902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 149902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawPaint(const SkPaint& paint) SK_OVERRIDE; 150902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 151902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawPath(const SkPath& path, const SkPaint&) SK_OVERRIDE; 152902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 153902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawPicture(SkPicture& picture) SK_OVERRIDE; 154902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 155902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawPoints(PointMode, size_t count, const SkPoint pts[], 156902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkPaint&) SK_OVERRIDE; 157902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 158902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawPosText(const void* text, size_t byteLength, 159902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkPoint pos[], const SkPaint&) SK_OVERRIDE; 160902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 161902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawPosTextH(const void* text, size_t byteLength, 162902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkScalar xpos[], SkScalar constY, const SkPaint&) SK_OVERRIDE; 163902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 164902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawRect(const SkRect& rect, const SkPaint&) SK_OVERRIDE; 165902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 166902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawSprite(const SkBitmap&, int left, int top, 167902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkPaint*) SK_OVERRIDE; 168902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 169902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawText(const void* text, size_t byteLength, SkScalar x, 170902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com SkScalar y, const SkPaint&) SK_OVERRIDE; 171902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 172902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawTextOnPath(const void* text, size_t byteLength, 173902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkPath& path, const SkMatrix* matrix, 174902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkPaint&) SK_OVERRIDE; 175902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 176902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void drawVertices(VertexMode, int vertexCount, 177902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkPoint vertices[], const SkPoint texs[], 178902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkColor colors[], SkXfermode*, 179902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const uint16_t indices[], int indexCount, 180902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com const SkPaint&) SK_OVERRIDE; 181902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 182902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void restore() SK_OVERRIDE; 183902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 184902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual bool rotate(SkScalar degrees) SK_OVERRIDE; 185902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 186902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual int save(SaveFlags) SK_OVERRIDE; 187902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 188902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual int saveLayer(const SkRect* bounds, const SkPaint*, SaveFlags) SK_OVERRIDE; 189902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 190902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual bool scale(SkScalar sx, SkScalar sy) SK_OVERRIDE; 191902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 192902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual void setMatrix(const SkMatrix& matrix) SK_OVERRIDE; 193902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 194902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual bool skew(SkScalar sx, SkScalar sy) SK_OVERRIDE; 195902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 196902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com virtual bool translate(SkScalar dx, SkScalar dy) SK_OVERRIDE; 197902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 198902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.comprivate: 199902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com typedef SkCanvas INHERITED; 20097cee9735350cb472249ce1a827ba1aa6b2a5f59chudy@google.com SkTDArray<SkDrawCommand*> commandVector; 201b9ddd4e9f184f4a4545eca69c55ec1ad1ce59170chudy@google.com int fHeight; 202b9ddd4e9f184f4a4545eca69c55ec1ad1ce59170chudy@google.com int fWidth; 203902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com SkBitmap fBm; 2047e4cfbf144af7d530d552946cee2a21d30b9b50fchudy@google.com bool fFilter; 205830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com int fIndex; 206830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com SkIPoint fUserOffset; 207830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com float fUserScale; 208a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com SkMatrix fMatrix; 209a9e937c7b712b024de108fa963f92d0e70e4a296chudy@google.com SkIRect fClip; 210902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 211902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com /** 212902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com Adds the command to the classes vector of commands. 213902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com @param command The draw command for execution 214902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com */ 215902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com void addDrawCommand(SkDrawCommand* command); 216830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com 217830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com /** 218830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com Applies any panning and zooming the user has specified before 219830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com drawing anything else into the canvas. 220830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com */ 221830b8793bb1646bb76817bdc228dd8e2a92bef7dchudy@google.com void applyUserTransform(SkCanvas* canvas); 222902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com}; 223902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 224902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#endif 225