SkDrawCommand.h revision 363e546ed626b6dbbc42f5db87b3594bc0b5944b
180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/* 380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Copyright 2012 Google Inc. 480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Use of this source code is governed by a BSD-style license that can be 680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * found in the LICENSE file. 780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */ 880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifndef SKDRAWCOMMAND_H_ 1080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define SKDRAWCOMMAND_H_ 1180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkPictureFlat.h" 1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkCanvas.h" 1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkDrawCommand { 1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 1780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru /* TODO(chudy): Remove subclasses. */ 1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDrawCommand(); 1980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual ~SkDrawCommand(); 2180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual SkString toString(); 2380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual const char* toCString() { 2580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru return GetCommandString(fDrawType); 2680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru } 2780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru bool isVisible() const { 2980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru return fVisible; 3080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru } 3180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 3280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru void setVisible(bool toggle) { 3380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru fVisible = toggle; 3480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru } 3580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 3680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkTDArray<SkString*>* Info() {return &fInfo; }; 3780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas)=0; 38363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger /** Does nothing by default, but used by save() and restore()-type 39363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger subclassse to track unresolved save() calls. */ 40363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual void trackSaveState(int* state) { }; 4180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawType getType() { return fDrawType; }; 4280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 43363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual const SkBitmap* getBitmap() const { return NULL; } 44363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger 45363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger static const char* GetCommandString(DrawType type); 46363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger 4780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 4880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawType fDrawType; 4980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkTDArray<SkString*> fInfo; 5080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 5280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru bool fVisible; 5380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 5480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass Restore : public SkDrawCommand { 5680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 5780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru Restore(); 5880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 59363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual void trackSaveState(int* state) SK_OVERRIDE; 6080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 6180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 6280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass Clear : public SkDrawCommand { 6380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 6480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru Clear(SkColor color); 6580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 6680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 6780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkColor fColor; 6880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 6980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 7080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass ClipPath : public SkDrawCommand { 7180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 72363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger ClipPath(const SkPath& path, SkRegion::Op op, bool doAA, SkBitmap& bitmap); 7380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 74363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual const SkBitmap* getBitmap() const SK_OVERRIDE; 7580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 7680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPath* fPath; 7780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkRegion::Op fOp; 7880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru bool fDoAA; 79363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger SkBitmap fBitmap; 8080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 8180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 8280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass ClipRegion : public SkDrawCommand { 8380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 8480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru ClipRegion(const SkRegion& region, SkRegion::Op op); 8580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 8680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 8780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkRegion* fRegion; 8880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkRegion::Op fOp; 8980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 9080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 9180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass ClipRect : public SkDrawCommand { 9280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 9380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru ClipRect(const SkRect& rect, SkRegion::Op op, bool doAA); 9480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 9580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 9680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkRect* fRect; 9780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkRegion::Op fOp; 9880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru bool fDoAA; 9980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 10080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 10180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass Concat : public SkDrawCommand { 10280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 10380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru Concat(const SkMatrix& matrix); 10480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 10580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 10680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkMatrix* fMatrix; 10780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 10880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 10980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawBitmap : public SkDrawCommand { 11080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 11180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top, 112363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger const SkPaint* paint, SkBitmap& resizedBitmap); 11380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 114363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual const SkBitmap* getBitmap() const SK_OVERRIDE; 11580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 11680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 11780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkBitmap* fBitmap; 11880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fLeft; 11980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fTop; 120363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger SkBitmap fResizedBitmap; 12180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 12280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 12380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawBitmapMatrix : public SkDrawCommand { 12480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 12580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& matrix, 126363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger const SkPaint* paint, SkBitmap& resizedBitmap); 12780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 128363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual const SkBitmap* getBitmap() const SK_OVERRIDE; 12980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 13080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 13180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkBitmap* fBitmap; 13280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkMatrix* fMatrix; 133363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger SkBitmap fResizedBitmap; 13480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 13580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 13680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawBitmapNine : public SkDrawCommand { 13780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 13880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, 139363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger const SkRect& dst, const SkPaint* paint, SkBitmap& resizedBitmap); 14080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 141363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual const SkBitmap* getBitmap() const SK_OVERRIDE; 14280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 14380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkBitmap* fBitmap; 14480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkIRect* fCenter; 14580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkRect* fDst; 14680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 147363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger SkBitmap fResizedBitmap; 14880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 14980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 15080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawBitmapRect : public SkDrawCommand { 15180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 15280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawBitmapRect(const SkBitmap& bitmap, const SkRect* src, 153363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger const SkRect& dst, const SkPaint* paint, SkBitmap& resizedBitmap); 15480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 155363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual const SkBitmap* getBitmap() const SK_OVERRIDE; 15680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 15780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkRect* fSrc; 15880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 15980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkBitmap* fBitmap; 16080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkRect* fDst; 161363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger SkBitmap fResizedBitmap; 16280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 16380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 16480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawData : public SkDrawCommand { 16580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 16680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawData(const void* data, size_t length); 16780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 16880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 16980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const void* fData; 17080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru size_t fLength; 17180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 17280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 17380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawPaint : public SkDrawCommand { 17480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 17580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawPaint(const SkPaint& paint); 17680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 17780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 17880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 17980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 18080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 18180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawPath : public SkDrawCommand { 18280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 183363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger DrawPath(const SkPath& path, const SkPaint& paint, SkBitmap& bitmap); 18480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 185363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual const SkBitmap* getBitmap() const SK_OVERRIDE; 186363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger 18780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 18880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPath* fPath; 18980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 190363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger SkBitmap fBitmap; 19180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 19280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 19380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawPicture : public SkDrawCommand { 19480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 19580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawPicture(SkPicture& picture); 19680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 19780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 19880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkPicture* fPicture; 19980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 20080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 20180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawPoints : public SkDrawCommand { 20280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 20380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawPoints(SkCanvas::PointMode mode, size_t count, const SkPoint pts[], 20480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint& paint); 20580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 20680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 20780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPoint* fPts; 20880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkCanvas::PointMode fMode; 20980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru size_t fCount; 21080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 21180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 21280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 21380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/* TODO(chudy): DrawText is a predefined macro and was breaking something 21480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * in the windows build of the debugger. 21580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */ 21680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawTextC : public SkDrawCommand { 21780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 21880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawTextC(const void* text, size_t byteLength, SkScalar x, SkScalar y, 21980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint& paint); 22080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 22180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 22280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const void* fText; 22380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru size_t fByteLength; 22480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fX; 22580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fY; 22680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 22780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 22880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 22980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawPosText : public SkDrawCommand { 23080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 23180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawPosText(const void* text, size_t byteLength, const SkPoint pos[], 23280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint& paint); 23380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 23480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 23580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPoint* fPos; 23680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const void* fText; 23780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru size_t fByteLength; 23880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 23980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 24080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 24180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawTextOnPath : public SkDrawCommand { 24280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 24380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawTextOnPath(const void* text, size_t byteLength, const SkPath& path, 24480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkMatrix* matrix, const SkPaint& paint); 24580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 24680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 24780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkMatrix* fMatrix; 24880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const void* fText; 24980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru size_t fByteLength; 25080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPath* fPath; 25180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 25280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 25380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 25480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawPosTextH : public SkDrawCommand { 25580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 25680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawPosTextH(const void* text, size_t byteLength, const SkScalar xpos[], 25780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar constY, const SkPaint& paint); 25880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 25980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 26080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkScalar* fXpos; 26180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const void* fText; 26280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru size_t fByteLength; 26380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fConstY; 26480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 26580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 26680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 26780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawRectC : public SkDrawCommand { 26880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 26980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawRectC(const SkRect& rect, const SkPaint& paint); 27080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 27180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 27280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkRect* fRect; 27380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 27480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 27580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 27680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawSprite : public SkDrawCommand { 27780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 278363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger DrawSprite(const SkBitmap& bitmap, int left, int top, const SkPaint* paint, 279363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger SkBitmap& resizedBitmap); 28080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 281363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual const SkBitmap* getBitmap() const SK_OVERRIDE; 28280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 28380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 28480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru int fLeft; 28580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru int fTop; 28680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkBitmap* fBitmap; 287363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger SkBitmap fResizedBitmap; 28880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 28980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 29080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass DrawVertices : public SkDrawCommand { 29180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 29280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DrawVertices(SkCanvas::VertexMode vmode, int vertexCount, 29380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPoint vertices[], const SkPoint texs[], const SkColor colors[], 29480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkXfermode* xfermode, const uint16_t indices[], int indexCount, 29580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint& paint); 29680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 29780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 29880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkCanvas::VertexMode fVmode; 29980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru int fVertexCount; 30080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru int fIndexCount; 30180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPoint* fVertices; 30280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPoint* fTexs; 30380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkColor* fColors; 30480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const uint16_t* fIndices; 30580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkXfermode* fXfermode; 30680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 30780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 30880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 30980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass Rotate : public SkDrawCommand { 31080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 31180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru Rotate(SkScalar degrees); 31280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 31380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 31480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fDegrees; 31580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 31680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 31780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass Save : public SkDrawCommand { 31880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 31980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru Save(SkCanvas::SaveFlags flags); 32080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 321363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual void trackSaveState(int* state) SK_OVERRIDE; 32280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 32380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkCanvas::SaveFlags fFlags; 32480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 32580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 32680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SaveLayer : public SkDrawCommand { 32780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 32880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SaveLayer(const SkRect* bounds, const SkPaint* paint, 32980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkCanvas::SaveFlags flags); 33080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 331363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger virtual void trackSaveState(int* state) SK_OVERRIDE; 33280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 33380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkRect* fBounds; 33480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkPaint* fPaint; 33580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkCanvas::SaveFlags fFlags; 33680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 33780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 33880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass Scale : public SkDrawCommand { 33980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 34080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru Scale(SkScalar sx, SkScalar sy); 34180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 34280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 34380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fSx; 34480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fSy; 34580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 34680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 34780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SetMatrix : public SkDrawCommand { 34880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 34980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SetMatrix(const SkMatrix& matrix); 35080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 35180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 35280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const SkMatrix* fMatrix; 35380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 35480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 35580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass Skew : public SkDrawCommand { 35680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 35780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru Skew(SkScalar sx, SkScalar sy); 35880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 35980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 36080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fSx; 36180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fSy; 36280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 36380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 36480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass Translate : public SkDrawCommand { 36580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 36680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru Translate(SkScalar dx, SkScalar dy); 36780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 36880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 36980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fDx; 37080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar fDy; 37180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 37280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 37380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 374