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#include "SkDrawCommand.h" 11902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com#include "SkObjectParser.h" 12902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 13902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com// TODO(chudy): Refactor into non subclass model. 14902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 15a5d3e77420621c912383c3b22e542d9413d68278skia.committer@gmail.comSkDrawCommand::SkDrawCommand(DrawType type) 160a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com : fDrawType(type) 1757f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org , fOffset(0) 180a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com , fVisible(true) { 190a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com} 200a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com 21902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.comSkDrawCommand::SkDrawCommand() { 2257f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org fOffset = 0; 23902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com fVisible = true; 24902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 25902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 26902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.comSkDrawCommand::~SkDrawCommand() { 2797cee9735350cb472249ce1a827ba1aa6b2a5f59chudy@google.com fInfo.deleteAll(); 28902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 29902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 30902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.comconst char* SkDrawCommand::GetCommandString(DrawType type) { 31902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com switch (type) { 32902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case UNUSED: SkDEBUGFAIL("DrawType UNUSED\n"); break; 33902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_CLEAR: return "Clear"; 34902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case CLIP_PATH: return "Clip Path"; 35902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case CLIP_REGION: return "Clip Region"; 36902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case CLIP_RECT: return "Clip Rect"; 3767baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com case CLIP_RRECT: return "Clip RRect"; 38902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case CONCAT: return "Concat"; 39902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_BITMAP: return "Draw Bitmap"; 40902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_BITMAP_MATRIX: return "Draw Bitmap Matrix"; 41902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_BITMAP_NINE: return "Draw Bitmap Nine"; 4284d320e258bb99ab7b5435f9954d3fbdd45e90f9robertphillips@google.com case DRAW_BITMAP_RECT_TO_RECT: return "Draw Bitmap Rect"; 43902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_DATA: return "Draw Data"; 4467baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com case DRAW_OVAL: return "Draw Oval"; 45902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_PAINT: return "Draw Paint"; 46902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_PATH: return "Draw Path"; 47902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_PICTURE: return "Draw Picture"; 48902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_POINTS: return "Draw Points"; 49902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_POS_TEXT: return "Draw Pos Text"; 50902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_POS_TEXT_H: return "Draw Pos Text H"; 51902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_RECT: return "Draw Rect"; 5267baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com case DRAW_RRECT: return "Draw RRect"; 53902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_SPRITE: return "Draw Sprite"; 54902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_TEXT: return "Draw Text"; 55902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_TEXT_ON_PATH: return "Draw Text On Path"; 56902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case DRAW_VERTICES: return "Draw Vertices"; 57902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case RESTORE: return "Restore"; 58902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case ROTATE: return "Rotate"; 59902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case SAVE: return "Save"; 60902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case SAVE_LAYER: return "Save Layer"; 61902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case SCALE: return "Scale"; 62902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case SET_MATRIX: return "Set Matrix"; 63902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case SKEW: return "Skew"; 64902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com case TRANSLATE: return "Translate"; 65e4ce5b82627d7ef7cab34b808ff88dc208aef7bcrobertphillips@google.com case NOOP: return "NoOp"; 660a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com case BEGIN_COMMENT_GROUP: return "BeginCommentGroup"; 670a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com case COMMENT: return "Comment"; 680a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com case END_COMMENT_GROUP: return "EndCommentGroup"; 693d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org case DRAW_DRRECT: return "Draw DRRect"; 70210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org case PUSH_CULL: return "PushCull"; 71210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org case POP_CULL: return "PopCull"; 72902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com default: 73902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com SkDebugf("DrawType error 0x%08x\n", type); 74902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com SkASSERT(0); 75902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com break; 76902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com } 77902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com SkDEBUGFAIL("DrawType UNUSED\n"); 78902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com return NULL; 79902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 80902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8197cee9735350cb472249ce1a827ba1aa6b2a5f59chudy@google.comSkString SkDrawCommand::toString() { 8297cee9735350cb472249ce1a827ba1aa6b2a5f59chudy@google.com return SkString(GetCommandString(fDrawType)); 83902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 84902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8557f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkClearCommand::SkClearCommand(SkColor color) : INHERITED(DRAW_CLEAR) { 8624bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fColor = color; 8724bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::CustomTextToString("No Parameters")); 88902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 89902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 907a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkClearCommand::execute(SkCanvas* canvas) { 9124bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com canvas->clear(fColor); 92902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 93902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 946ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.comnamespace { 956ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 966ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.comvoid xlate_and_scale_to_bounds(SkCanvas* canvas, const SkRect& bounds) { 976ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com const SkISize& size = canvas->getDeviceSize(); 986ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 996ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com static const SkScalar kInsetFrac = 0.9f; // Leave a border around object 1006ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1016ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->translate(size.fWidth/2.0f, size.fHeight/2.0f); 1026ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com if (bounds.width() > bounds.height()) { 1036ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->scale(SkDoubleToScalar((kInsetFrac*size.fWidth)/bounds.width()), 1046ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkDoubleToScalar((kInsetFrac*size.fHeight)/bounds.width())); 1056ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com } else { 1066ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->scale(SkDoubleToScalar((kInsetFrac*size.fWidth)/bounds.height()), 1076ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkDoubleToScalar((kInsetFrac*size.fHeight)/bounds.height())); 1086ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com } 1096ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->translate(-bounds.centerX(), -bounds.centerY()); 1106ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com} 111a009083bd10353b91903cab84362b0e744d3b3b7skia.committer@gmail.com 1126ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1136ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.comvoid render_path(SkCanvas* canvas, const SkPath& path) { 1146ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->clear(0xFFFFFFFF); 1156ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->save(); 1166ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1176ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com const SkRect& bounds = path.getBounds(); 1186ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1196ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com xlate_and_scale_to_bounds(canvas, bounds); 1206ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1216ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkPaint p; 1226ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com p.setColor(SK_ColorBLACK); 1236ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com p.setStyle(SkPaint::kStroke_Style); 1246ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1256ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->drawPath(path, p); 1266ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->restore(); 1276ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com} 1286ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1296ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.comvoid render_bitmap(SkCanvas* canvas, const SkBitmap& input, const SkRect* srcRect = NULL) { 1306ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com const SkISize& size = canvas->getDeviceSize(); 1316ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1326ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkScalar xScale = SkIntToScalar(size.fWidth-2) / input.width(); 1336ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkScalar yScale = SkIntToScalar(size.fHeight-2) / input.height(); 1346ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1356ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com if (input.width() > input.height()) { 1366ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com yScale *= input.height() / (float) input.width(); 1376ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com } else { 1386ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com xScale *= input.width() / (float) input.height(); 1396ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com } 1406ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1416ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkRect dst = SkRect::MakeXYWH(SK_Scalar1, SK_Scalar1, 1426ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com xScale * input.width(), 1436ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com yScale * input.height()); 144a009083bd10353b91903cab84362b0e744d3b3b7skia.committer@gmail.com 1456ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->clear(0xFFFFFFFF); 1466ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->drawBitmapRect(input, NULL, dst); 1476ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1486ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com if (NULL != srcRect) { 1496ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkRect r = SkRect::MakeLTRB(srcRect->fLeft * xScale + SK_Scalar1, 1506ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com srcRect->fTop * yScale + SK_Scalar1, 1516ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com srcRect->fRight * xScale + SK_Scalar1, 1526ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com srcRect->fBottom * yScale + SK_Scalar1); 1536ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkPaint p; 1546ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com p.setColor(SK_ColorRED); 1556ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com p.setStyle(SkPaint::kStroke_Style); 1566ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1576ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->drawRect(r, p); 1586ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com } 1596ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com} 1606ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1616ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.comvoid render_rrect(SkCanvas* canvas, const SkRRect& rrect) { 1626ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->clear(0xFFFFFFFF); 1636ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->save(); 1646ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1656ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com const SkRect& bounds = rrect.getBounds(); 1666ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1676ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com xlate_and_scale_to_bounds(canvas, bounds); 1686ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1696ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkPaint p; 1706ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com p.setColor(SK_ColorBLACK); 1716ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com p.setStyle(SkPaint::kStroke_Style); 1726ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1736ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->drawRRect(rrect, p); 1746ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->restore(); 1756ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com} 176a009083bd10353b91903cab84362b0e744d3b3b7skia.committer@gmail.com 1773d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.orgvoid render_drrect(SkCanvas* canvas, const SkRRect& outer, const SkRRect& inner) { 1783d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org canvas->clear(0xFFFFFFFF); 1793d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org canvas->save(); 1803d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org 1813d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org const SkRect& bounds = outer.getBounds(); 1823d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org 1833d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org xlate_and_scale_to_bounds(canvas, bounds); 1843d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org 1853d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org SkPaint p; 1863d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org p.setColor(SK_ColorBLACK); 1873d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org p.setStyle(SkPaint::kStroke_Style); 1883d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org 1893d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org canvas->drawDRRect(outer, inner, p); 1903d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org canvas->restore(); 1913d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org} 1923d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org 1936ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com}; 1946ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 1956ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 19657f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkClipPathCommand::SkClipPathCommand(const SkPath& path, SkRegion::Op op, bool doAA) 19757f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(CLIP_PATH) { 19891217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fPath = path; 19991217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fOp = op; 20091217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fDoAA = doAA; 201902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 20291217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::PathToString(path)); 20391217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::RegionOpToString(op)); 20491217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::BoolToString(doAA)); 205902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 206902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 2077a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkClipPathCommand::execute(SkCanvas* canvas) { 20891217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com canvas->clipPath(fPath, fOp, fDoAA); 209902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 210902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 2117a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkClipPathCommand::render(SkCanvas* canvas) const { 2126ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com render_path(canvas, fPath); 2136ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 2146dec8fcb4427c68649aede96864cff7c71df6393robertphillips@google.com} 2156dec8fcb4427c68649aede96864cff7c71df6393robertphillips@google.com 216db35dab49e0e6bf16ccad5052bf6e6826daad27dskia.committer@gmail.comSkClipRegionCommand::SkClipRegionCommand(const SkRegion& region, SkRegion::Op op) 21757f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(CLIP_REGION) { 21824bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fRegion = region; 21924bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fOp = op; 220902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 22124bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::RegionToString(region)); 22224bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::RegionOpToString(op)); 223902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 224902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 2257a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkClipRegionCommand::execute(SkCanvas* canvas) { 22624bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com canvas->clipRegion(fRegion, fOp); 227902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 228902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 22957f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkClipRectCommand::SkClipRectCommand(const SkRect& rect, SkRegion::Op op, bool doAA) 23057f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(CLIP_RECT) { 231a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fRect = rect; 232a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fOp = op; 233a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fDoAA = doAA; 234902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 235a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::RectToString(rect)); 236a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::RegionOpToString(op)); 237a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::BoolToString(doAA)); 238902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 239902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 2407a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkClipRectCommand::execute(SkCanvas* canvas) { 241a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com canvas->clipRect(fRect, fOp, fDoAA); 242902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 243902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 244db35dab49e0e6bf16ccad5052bf6e6826daad27dskia.committer@gmail.comSkClipRRectCommand::SkClipRRectCommand(const SkRRect& rrect, SkRegion::Op op, bool doAA) 24557f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(CLIP_RRECT) { 246a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fRRect = rrect; 247a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fOp = op; 248a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fDoAA = doAA; 24967baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com 250a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::RRectToString(rrect)); 251a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::RegionOpToString(op)); 252a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::BoolToString(doAA)); 25367baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com} 25467baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com 2557a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkClipRRectCommand::execute(SkCanvas* canvas) { 256a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com canvas->clipRRect(fRRect, fOp, fDoAA); 25767baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com} 25867baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com 2597a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkClipRRectCommand::render(SkCanvas* canvas) const { 2606ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com render_rrect(canvas, fRRect); 2616ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 2626ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com} 2636ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 26457f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkConcatCommand::SkConcatCommand(const SkMatrix& matrix) 26557f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(CONCAT) { 26624bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fMatrix = matrix; 267902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 26824bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::MatrixToString(matrix)); 269902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 270902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 2717a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkConcatCommand::execute(SkCanvas* canvas) { 27224bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com canvas->concat(fMatrix); 273902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 274902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 2757a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawBitmapCommand::SkDrawBitmapCommand(const SkBitmap& bitmap, SkScalar left, SkScalar top, 276db35dab49e0e6bf16ccad5052bf6e6826daad27dskia.committer@gmail.com const SkPaint* paint) 27757f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_BITMAP) { 27824bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fBitmap = bitmap; 27924bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fLeft = left; 28024bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fTop = top; 28124bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com if (NULL != paint) { 28224bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaint = *paint; 28324bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaintPtr = &fPaint; 28424bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } else { 28524bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaintPtr = NULL; 28624bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } 287902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 28824bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::BitmapToString(bitmap)); 28924bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(left, "SkScalar left: ")); 29024bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(top, "SkScalar top: ")); 291b83b6b4f7690fe929d8d6b1a3d2b7ed562b95ba6robertphillips@google.com if (NULL != paint) { 29224bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::PaintToString(*paint)); 293b83b6b4f7690fe929d8d6b1a3d2b7ed562b95ba6robertphillips@google.com } 294902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 295902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 2967a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawBitmapCommand::execute(SkCanvas* canvas) { 29724bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com canvas->drawBitmap(fBitmap, fLeft, fTop, fPaintPtr); 298902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 299902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 3007a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkDrawBitmapCommand::render(SkCanvas* canvas) const { 3016ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com render_bitmap(canvas, fBitmap); 3026ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 30353ec73d1e663c781cf44def060b5e8f669709fdcrobertphillips@google.com} 30453ec73d1e663c781cf44def060b5e8f669709fdcrobertphillips@google.com 3057a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawBitmapMatrixCommand::SkDrawBitmapMatrixCommand(const SkBitmap& bitmap, 3067a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.org const SkMatrix& matrix, 307db35dab49e0e6bf16ccad5052bf6e6826daad27dskia.committer@gmail.com const SkPaint* paint) 30857f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_BITMAP_MATRIX) { 30924bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fBitmap = bitmap; 31024bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fMatrix = matrix; 31124bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com if (NULL != paint) { 31224bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaint = *paint; 31324bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaintPtr = &fPaint; 31424bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } else { 31524bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaintPtr = NULL; 31624bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } 317902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 31824bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::BitmapToString(bitmap)); 31924bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::MatrixToString(matrix)); 320b83b6b4f7690fe929d8d6b1a3d2b7ed562b95ba6robertphillips@google.com if (NULL != paint) { 32124bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::PaintToString(*paint)); 322b83b6b4f7690fe929d8d6b1a3d2b7ed562b95ba6robertphillips@google.com } 323902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 324902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 3257a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawBitmapMatrixCommand::execute(SkCanvas* canvas) { 32624bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com canvas->drawBitmapMatrix(fBitmap, fMatrix, fPaintPtr); 327902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 328902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 3297a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkDrawBitmapMatrixCommand::render(SkCanvas* canvas) const { 3306ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com render_bitmap(canvas, fBitmap); 3316ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 33253ec73d1e663c781cf44def060b5e8f669709fdcrobertphillips@google.com} 33353ec73d1e663c781cf44def060b5e8f669709fdcrobertphillips@google.com 3347a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawBitmapNineCommand::SkDrawBitmapNineCommand(const SkBitmap& bitmap, const SkIRect& center, 335db35dab49e0e6bf16ccad5052bf6e6826daad27dskia.committer@gmail.com const SkRect& dst, const SkPaint* paint) 33657f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_BITMAP_NINE) { 33724bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fBitmap = bitmap; 33824bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fCenter = center; 33924bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fDst = dst; 34024bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com if (NULL != paint) { 34124bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaint = *paint; 34224bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaintPtr = &fPaint; 34324bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } else { 34424bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaintPtr = NULL; 34524bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } 346902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 34724bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::BitmapToString(bitmap)); 34824bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::IRectToString(center)); 34924bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::RectToString(dst, "Dst: ")); 350b83b6b4f7690fe929d8d6b1a3d2b7ed562b95ba6robertphillips@google.com if (NULL != paint) { 35124bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::PaintToString(*paint)); 352b83b6b4f7690fe929d8d6b1a3d2b7ed562b95ba6robertphillips@google.com } 353902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 354902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 3557a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawBitmapNineCommand::execute(SkCanvas* canvas) { 35624bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com canvas->drawBitmapNine(fBitmap, fCenter, fDst, fPaintPtr); 357902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 358902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 3597a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkDrawBitmapNineCommand::render(SkCanvas* canvas) const { 3606ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com render_bitmap(canvas, fBitmap); 3616ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 36253ec73d1e663c781cf44def060b5e8f669709fdcrobertphillips@google.com} 36353ec73d1e663c781cf44def060b5e8f669709fdcrobertphillips@google.com 3647a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawBitmapRectCommand::SkDrawBitmapRectCommand(const SkBitmap& bitmap, const SkRect* src, 365eed779d866e1e239bfb9ebc6a225b7345a41adf9commit-bot@chromium.org const SkRect& dst, const SkPaint* paint, 366db35dab49e0e6bf16ccad5052bf6e6826daad27dskia.committer@gmail.com SkCanvas::DrawBitmapRectFlags flags) 36757f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_BITMAP_RECT_TO_RECT) { 36891217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fBitmap = bitmap; 36991217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com if (NULL != src) { 37091217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fSrc = *src; 37191217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com } else { 37291217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fSrc.setEmpty(); 37391217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com } 37491217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fDst = dst; 37591217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com 3763b0a9fe5672e7339ec3e5e6d3986b15f57ae24e7robertphillips@google.com if (NULL != paint) { 37791217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fPaint = *paint; 37891217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fPaintPtr = &fPaint; 3793b0a9fe5672e7339ec3e5e6d3986b15f57ae24e7robertphillips@google.com } else { 38091217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fPaintPtr = NULL; 3813b0a9fe5672e7339ec3e5e6d3986b15f57ae24e7robertphillips@google.com } 382eed779d866e1e239bfb9ebc6a225b7345a41adf9commit-bot@chromium.org fFlags = flags; 383eed779d866e1e239bfb9ebc6a225b7345a41adf9commit-bot@chromium.org 38491217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::BitmapToString(bitmap)); 385b83b6b4f7690fe929d8d6b1a3d2b7ed562b95ba6robertphillips@google.com if (NULL != src) { 38691217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::RectToString(*src, "Src: ")); 387b83b6b4f7690fe929d8d6b1a3d2b7ed562b95ba6robertphillips@google.com } 38891217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::RectToString(dst, "Dst: ")); 389b83b6b4f7690fe929d8d6b1a3d2b7ed562b95ba6robertphillips@google.com if (NULL != paint) { 39091217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::PaintToString(*paint)); 391b83b6b4f7690fe929d8d6b1a3d2b7ed562b95ba6robertphillips@google.com } 392eed779d866e1e239bfb9ebc6a225b7345a41adf9commit-bot@chromium.org fInfo.push(SkObjectParser::IntToString(fFlags, "Flags: ")); 393902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 394902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 3957a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawBitmapRectCommand::execute(SkCanvas* canvas) { 396eed779d866e1e239bfb9ebc6a225b7345a41adf9commit-bot@chromium.org canvas->drawBitmapRectToRect(fBitmap, this->srcRect(), fDst, fPaintPtr, fFlags); 397902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 398902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 3997a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkDrawBitmapRectCommand::render(SkCanvas* canvas) const { 4006ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com render_bitmap(canvas, fBitmap, this->srcRect()); 4016ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 40253ec73d1e663c781cf44def060b5e8f669709fdcrobertphillips@google.com} 40353ec73d1e663c781cf44def060b5e8f669709fdcrobertphillips@google.com 404db35dab49e0e6bf16ccad5052bf6e6826daad27dskia.committer@gmail.comSkDrawDataCommand::SkDrawDataCommand(const void* data, size_t length) 40557f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_DATA) { 4060df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fData = new char[length]; 4070df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com memcpy(fData, data, length); 4080df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fLength = length; 4090df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com 4100df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com // TODO: add display of actual data? 4110df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com SkString* str = new SkString; 41277279cbf9bfa1732b8b4b9437a4a857c6fc18b70robertphillips@google.com str->appendf("length: %d", (int) length); 4130df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(str); 414902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 415902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 4167a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawDataCommand::execute(SkCanvas* canvas) { 4170df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com canvas->drawData(fData, fLength); 418902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 419902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 4207a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkBeginCommentGroupCommand::SkBeginCommentGroupCommand(const char* description) 4210a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com : INHERITED(BEGIN_COMMENT_GROUP) 4220a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com , fDescription(description) { 4230a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com SkString* temp = new SkString; 4240a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com temp->appendf("Description: %s", description); 4250a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com fInfo.push(temp); 4260a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com} 4270a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com 4287a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkCommentCommand::SkCommentCommand(const char* kywd, const char* value) 4290a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com : INHERITED(COMMENT) 4300a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com , fKywd(kywd) 4310a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com , fValue(value) { 4320a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com SkString* temp = new SkString; 4330a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com temp->appendf("%s: %s", kywd, value); 4340a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com fInfo.push(temp); 4350a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com} 4360a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com 437db35dab49e0e6bf16ccad5052bf6e6826daad27dskia.committer@gmail.comSkEndCommentGroupCommand::SkEndCommentGroupCommand() 43857f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(END_COMMENT_GROUP) { 4390a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com} 4400a4805e33f8ddb445a2fd061462e715e1707f049robertphillips@google.com 44157f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkDrawOvalCommand::SkDrawOvalCommand(const SkRect& oval, const SkPaint& paint) 44257f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_OVAL) { 443a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fOval = oval; 444a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fPaint = paint; 44567baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com 446a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::RectToString(oval)); 447a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::PaintToString(paint)); 44867baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com} 44967baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com 4507a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawOvalCommand::execute(SkCanvas* canvas) { 451a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com canvas->drawOval(fOval, fPaint); 45267baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com} 45367baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com 4547a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkDrawOvalCommand::render(SkCanvas* canvas) const { 4556ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->clear(0xFFFFFFFF); 4566ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->save(); 4576ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 4586ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com xlate_and_scale_to_bounds(canvas, fOval); 4596ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 4606ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkPaint p; 4616ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com p.setColor(SK_ColorBLACK); 4626ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com p.setStyle(SkPaint::kStroke_Style); 4636ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 4646ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->drawOval(fOval, p); 4656ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->restore(); 4666ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 4676ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 4686ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com} 4696ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 47057f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkDrawPaintCommand::SkDrawPaintCommand(const SkPaint& paint) 47157f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_PAINT) { 472a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fPaint = paint; 473902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 474a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::PaintToString(paint)); 475902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 476902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 4777a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawPaintCommand::execute(SkCanvas* canvas) { 478a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com canvas->drawPaint(fPaint); 479902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 480902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 4817a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkDrawPaintCommand::render(SkCanvas* canvas) const { 4826ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->clear(0xFFFFFFFF); 4836ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->drawPaint(fPaint); 4846ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 4856ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com} 4866ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 48757f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkDrawPathCommand::SkDrawPathCommand(const SkPath& path, const SkPaint& paint) 48857f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_PATH) { 48991217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fPath = path; 49091217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fPaint = paint; 491902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 49291217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::PathToString(path)); 49391217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::PaintToString(paint)); 494902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 495902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 4967a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawPathCommand::execute(SkCanvas* canvas) { 49791217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com canvas->drawPath(fPath, fPaint); 498902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 499902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 5007a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkDrawPathCommand::render(SkCanvas* canvas) const { 5016ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com render_path(canvas, fPath); 5026ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 5036dec8fcb4427c68649aede96864cff7c71df6393robertphillips@google.com} 5046dec8fcb4427c68649aede96864cff7c71df6393robertphillips@google.com 5059b14f26d0f3a974f3dd626c8354e1db1cfcd322frobertphillipsSkDrawPictureCommand::SkDrawPictureCommand(const SkPicture* picture) 50657f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_PICTURE) 5079b14f26d0f3a974f3dd626c8354e1db1cfcd322frobertphillips , fPicture(SkRef(picture)) { 508e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org SkString* temp = new SkString; 5099b14f26d0f3a974f3dd626c8354e1db1cfcd322frobertphillips temp->appendf("SkPicture: W: %d H: %d", picture->width(), picture->height()); 510e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org fInfo.push(temp); 511902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 512902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 5137a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawPictureCommand::execute(SkCanvas* canvas) { 5140df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com canvas->drawPicture(fPicture); 515902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 516902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 517e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.orgbool SkDrawPictureCommand::render(SkCanvas* canvas) const { 518e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org canvas->clear(0xFFFFFFFF); 519e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org canvas->save(); 520e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org 5219b14f26d0f3a974f3dd626c8354e1db1cfcd322frobertphillips SkRect bounds = SkRect::MakeWH(SkIntToScalar(fPicture->width()), 5229b14f26d0f3a974f3dd626c8354e1db1cfcd322frobertphillips SkIntToScalar(fPicture->height())); 523e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org xlate_and_scale_to_bounds(canvas, bounds); 524e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org 5259b14f26d0f3a974f3dd626c8354e1db1cfcd322frobertphillips canvas->drawPicture(fPicture.get()); 526e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org 527e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org canvas->restore(); 528e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org 529e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org return true; 530e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org} 531e898e9c65eb2f10e53c459349b174551b3957545commit-bot@chromium.org 5327a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawPointsCommand::SkDrawPointsCommand(SkCanvas::PointMode mode, size_t count, 53357f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org const SkPoint pts[], const SkPaint& paint) 53457f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_POINTS) { 535a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fMode = mode; 536a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fCount = count; 537a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fPts = new SkPoint[count]; 538a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com memcpy(fPts, pts, count * sizeof(SkPoint)); 539a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fPaint = paint; 540902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 541a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::PointsToString(pts, count)); 542a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(SkIntToScalar((unsigned int)count), 543a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com "Points: ")); 544a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::PointModeToString(mode)); 545a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::PaintToString(paint)); 546902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 547902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 5487a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawPointsCommand::execute(SkCanvas* canvas) { 549a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com canvas->drawPoints(fMode, fCount, fPts, fPaint); 550902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 551902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 5527a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkDrawPointsCommand::render(SkCanvas* canvas) const { 5536ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->clear(0xFFFFFFFF); 5546ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->save(); 5556ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 5566ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkRect bounds; 5576ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 5586ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com bounds.setEmpty(); 5596ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com for (unsigned int i = 0; i < fCount; ++i) { 5606ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com bounds.growToInclude(fPts[i].fX, fPts[i].fY); 5616ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com } 562a009083bd10353b91903cab84362b0e744d3b3b7skia.committer@gmail.com 5636ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com xlate_and_scale_to_bounds(canvas, bounds); 5646ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 5656ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com SkPaint p; 5666ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com p.setColor(SK_ColorBLACK); 5676ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com p.setStyle(SkPaint::kStroke_Style); 5686ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 5696ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->drawPoints(fMode, fCount, fPts, p); 5706ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com canvas->restore(); 5716ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 5726ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 5736ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com} 5746ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 5757a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawPosTextCommand::SkDrawPosTextCommand(const void* text, size_t byteLength, 57657f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org const SkPoint pos[], const SkPaint& paint) 57757f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_POS_TEXT) { 578a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com size_t numPts = paint.countText(text, byteLength); 579a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com 580a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fText = new char[byteLength]; 581a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com memcpy(fText, text, byteLength); 582a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fByteLength = byteLength; 583a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com 584a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fPos = new SkPoint[numPts]; 585a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com memcpy(fPos, pos, numPts * sizeof(SkPoint)); 586a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com 587a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fPaint = paint; 588a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com 589a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding())); 590902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com // TODO(chudy): Test that this works. 591a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::PointsToString(pos, 1)); 592a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fInfo.push(SkObjectParser::PaintToString(paint)); 593902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 594902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 5957a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawPosTextCommand::execute(SkCanvas* canvas) { 596a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com canvas->drawPosText(fText, fByteLength, fPos, fPaint); 597902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 598902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 599902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 6007a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawPosTextHCommand::SkDrawPosTextHCommand(const void* text, size_t byteLength, 6017a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.org const SkScalar xpos[], SkScalar constY, 60257f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org const SkPaint& paint) 60357f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_POS_TEXT_H) { 604a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com size_t numPts = paint.countText(text, byteLength); 605a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com 606a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fText = new char[byteLength]; 607a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com memcpy(fText, text, byteLength); 60891217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fByteLength = byteLength; 609a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com 610a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com fXpos = new SkScalar[numPts]; 611a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com memcpy(fXpos, xpos, numPts * sizeof(SkScalar)); 612a3a09ab1d5e8ecc6f16b14610f9dd74be569cc29robertphillips@google.com 61391217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fConstY = constY; 61491217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fPaint = paint; 615902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 61691217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding())); 61791217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(xpos[0], "XPOS: ")); 61891217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(constY, "SkScalar constY: ")); 61991217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::PaintToString(paint)); 620902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 621902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 6227a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawPosTextHCommand::execute(SkCanvas* canvas) { 62391217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com canvas->drawPosTextH(fText, fByteLength, fXpos, fConstY, fPaint); 624902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 625902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 62657f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkDrawRectCommand::SkDrawRectCommand(const SkRect& rect, const SkPaint& paint) 62757f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_RECT) { 62891217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fRect = rect; 62991217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fPaint = paint; 630902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 63191217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::RectToString(rect)); 63291217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com fInfo.push(SkObjectParser::PaintToString(paint)); 633902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 634902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 6357a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawRectCommand::execute(SkCanvas* canvas) { 63691217d0b0cdf80a1f18ca24d49e4a925d4629f1frobertphillips@google.com canvas->drawRect(fRect, fPaint); 637902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 638902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 63957f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkDrawRRectCommand::SkDrawRRectCommand(const SkRRect& rrect, const SkPaint& paint) 64057f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_RRECT) { 6410df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fRRect = rrect; 6420df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fPaint = paint; 64367baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com 6440df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::RRectToString(rrect)); 6450df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::PaintToString(paint)); 64667baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com} 64767baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com 6487a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawRRectCommand::execute(SkCanvas* canvas) { 649febc0ec41b4cff6ea69f2b89d72c0d330d198283robertphillips@google.com canvas->drawRRect(fRRect, fPaint); 65067baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com} 65167baba4892649fdb6fb0827c7d54e5adb7538443robertphillips@google.com 6527a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkDrawRRectCommand::render(SkCanvas* canvas) const { 6536ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com render_rrect(canvas, fRRect); 6546ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 6556ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com} 6566ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com 65790667ba5eb88f5cb715f71add583a1c87efbe6a7skia.committer@gmail.comSkDrawDRRectCommand::SkDrawDRRectCommand(const SkRRect& outer, 6583d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org const SkRRect& inner, 65957f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org const SkPaint& paint) 66057f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_DRRECT) { 6613d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org fOuter = outer; 6623d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org fInner = inner; 6633d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org fPaint = paint; 6643d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org 6653d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org fInfo.push(SkObjectParser::RRectToString(outer)); 6663d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org fInfo.push(SkObjectParser::RRectToString(inner)); 6673d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org fInfo.push(SkObjectParser::PaintToString(paint)); 6683d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org} 6693d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org 6703d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.orgvoid SkDrawDRRectCommand::execute(SkCanvas* canvas) { 6713d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org canvas->drawDRRect(fOuter, fInner, fPaint); 6723d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org} 6733d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org 6743d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.orgbool SkDrawDRRectCommand::render(SkCanvas* canvas) const { 6753d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org render_drrect(canvas, fOuter, fInner); 6763d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org return true; 6773d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org} 6783d305207bd40f4e5ae10010492420a2fdfa1153ccommit-bot@chromium.org 6797a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawSpriteCommand::SkDrawSpriteCommand(const SkBitmap& bitmap, int left, int top, 68057f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org const SkPaint* paint) 68157f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_SPRITE) { 6820df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fBitmap = bitmap; 6830df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fLeft = left; 6840df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fTop = top; 6850df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com if (NULL != paint) { 6860df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fPaint = *paint; 6870df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fPaintPtr = &fPaint; 6880df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } else { 6890df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fPaintPtr = NULL; 6900df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } 691902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 6920df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::BitmapToString(bitmap)); 6930df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::IntToString(left, "Left: ")); 6940df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::IntToString(top, "Top: ")); 6950df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com if (NULL != paint) { 6960df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::PaintToString(*paint)); 6970df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } 698902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 699902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 7007a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawSpriteCommand::execute(SkCanvas* canvas) { 7010df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com canvas->drawSprite(fBitmap, fLeft, fTop, fPaintPtr); 702902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 703902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 7047a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgbool SkDrawSpriteCommand::render(SkCanvas* canvas) const { 7056ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com render_bitmap(canvas, fBitmap); 7066ede1fe62bbb4e98f4eff4e4afb1d20e1e070423robertphillips@google.com return true; 70753ec73d1e663c781cf44def060b5e8f669709fdcrobertphillips@google.com} 70853ec73d1e663c781cf44def060b5e8f669709fdcrobertphillips@google.com 7097a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawTextCommand::SkDrawTextCommand(const void* text, size_t byteLength, SkScalar x, SkScalar y, 71057f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org const SkPaint& paint) 71157f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_TEXT) { 7120df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fText = new char[byteLength]; 7130df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com memcpy(fText, text, byteLength); 7140df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fByteLength = byteLength; 7150df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fX = x; 7160df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fY = y; 7170df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fPaint = paint; 718902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 7190df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding())); 7200df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(x, "SkScalar x: ")); 7210df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(y, "SkScalar y: ")); 7220df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::PaintToString(paint)); 723902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 724902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 7257a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawTextCommand::execute(SkCanvas* canvas) { 7260df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com canvas->drawText(fText, fByteLength, fX, fY, fPaint); 727902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 728902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 7297a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawTextOnPathCommand::SkDrawTextOnPathCommand(const void* text, size_t byteLength, 7307a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.org const SkPath& path, const SkMatrix* matrix, 73157f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org const SkPaint& paint) 73257f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_TEXT_ON_PATH) { 7330df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fText = new char[byteLength]; 7340df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com memcpy(fText, text, byteLength); 7350df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fByteLength = byteLength; 7360df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fPath = path; 7370df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com if (NULL != matrix) { 7380df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fMatrix = *matrix; 7390df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } else { 7400df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fMatrix.setIdentity(); 7410df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } 7420df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fPaint = paint; 743902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 7440df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding())); 7450df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::PathToString(path)); 7460df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com if (NULL != matrix) { 7470df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::MatrixToString(*matrix)); 7480df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } 7490df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::PaintToString(paint)); 750902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 751902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 7527a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawTextOnPathCommand::execute(SkCanvas* canvas) { 7530df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com canvas->drawTextOnPath(fText, fByteLength, fPath, 7540df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fMatrix.isIdentity() ? NULL : &fMatrix, 7550df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fPaint); 756902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 757902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 7587a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawVerticesCommand::SkDrawVerticesCommand(SkCanvas::VertexMode vmode, int vertexCount, 7597a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.org const SkPoint vertices[], const SkPoint texs[], 7607a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.org const SkColor colors[], SkXfermode* xfermode, 7617a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.org const uint16_t indices[], int indexCount, 76257f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org const SkPaint& paint) 76357f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(DRAW_VERTICES) { 7640df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fVmode = vmode; 7650df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com 7660df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fVertexCount = vertexCount; 7670df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com 7680df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fVertices = new SkPoint[vertexCount]; 7690df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com memcpy(fVertices, vertices, vertexCount * sizeof(SkPoint)); 7700df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com 7710df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com if (NULL != texs) { 7720df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fTexs = new SkPoint[vertexCount]; 7730df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com memcpy(fTexs, texs, vertexCount * sizeof(SkPoint)); 7740df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } else { 7750df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fTexs = NULL; 7760df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } 7770df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com 7780df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com if (NULL != colors) { 7790df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fColors = new SkColor[vertexCount]; 7800df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com memcpy(fColors, colors, vertexCount * sizeof(SkColor)); 7810df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } else { 7820df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fColors = NULL; 7830df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } 7840df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com 7850df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fXfermode = xfermode; 7860df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com if (NULL != fXfermode) { 7870df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fXfermode->ref(); 7880df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } 7890df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com 7900df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com if (indexCount > 0) { 7910df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fIndices = new uint16_t[indexCount]; 7920df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com memcpy(fIndices, indices, indexCount * sizeof(uint16_t)); 7930df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } else { 7940df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fIndices = NULL; 7950df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com } 7960df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com 7970df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fIndexCount = indexCount; 7980df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fPaint = paint; 7990df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com 800902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com // TODO(chudy) 8010df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::CustomTextToString("To be implemented.")); 8020df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::PaintToString(paint)); 8030df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com} 8040df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com 8057a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkDrawVerticesCommand::~SkDrawVerticesCommand() { 8060df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com delete [] fVertices; 8070df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com delete [] fTexs; 8080df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com delete [] fColors; 8090df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com SkSafeUnref(fXfermode); 8100df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com delete [] fIndices; 811902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 812902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8137a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkDrawVerticesCommand::execute(SkCanvas* canvas) { 8140df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com canvas->drawVertices(fVmode, fVertexCount, fVertices, 8150df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fTexs, fColors, fXfermode, fIndices, 8160df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fIndexCount, fPaint); 817902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 818902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 81957f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkRestoreCommand::SkRestoreCommand() 82057f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(RESTORE) { 82124bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::CustomTextToString("No Parameters")); 822902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 823902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8247a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkRestoreCommand::execute(SkCanvas* canvas) { 825902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com canvas->restore(); 826902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 827902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8287a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkRestoreCommand::trackSaveState(int* state) { 8290699e02101405623ad47f225729ed2521b2a0501tomhudson@google.com (*state)--; 8300699e02101405623ad47f225729ed2521b2a0501tomhudson@google.com} 8310699e02101405623ad47f225729ed2521b2a0501tomhudson@google.com 83257f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkRotateCommand::SkRotateCommand(SkScalar degrees) 83357f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(ROTATE) { 8340df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fDegrees = degrees; 835902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8360df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(degrees, "SkScalar degrees: ")); 837902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 838902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8397a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkRotateCommand::execute(SkCanvas* canvas) { 8400df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com canvas->rotate(fDegrees); 841902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 842902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 84357f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkSaveCommand::SkSaveCommand(SkCanvas::SaveFlags flags) 84457f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(SAVE) { 84524bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fFlags = flags; 84624bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::SaveFlagsToString(flags)); 847902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 848902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8497a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkSaveCommand::execute(SkCanvas* canvas) { 85024bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com canvas->save(fFlags); 851902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 852902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8537a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkSaveCommand::trackSaveState(int* state) { 8540699e02101405623ad47f225729ed2521b2a0501tomhudson@google.com (*state)++; 8550699e02101405623ad47f225729ed2521b2a0501tomhudson@google.com} 8560699e02101405623ad47f225729ed2521b2a0501tomhudson@google.com 8577a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgSkSaveLayerCommand::SkSaveLayerCommand(const SkRect* bounds, const SkPaint* paint, 85857f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org SkCanvas::SaveFlags flags) 85957f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(SAVE_LAYER) { 86024bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com if (NULL != bounds) { 86124bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fBounds = *bounds; 86224bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } else { 86324bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fBounds.setEmpty(); 86424bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } 86524bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com 86624bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com if (NULL != paint) { 86724bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaint = *paint; 86824bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaintPtr = &fPaint; 86924bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } else { 87024bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaintPtr = NULL; 87124bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } 87224bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fFlags = flags; 873902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 87424bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com if (NULL != bounds) { 87524bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::RectToString(*bounds, "Bounds: ")); 87624bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } 87724bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com if (NULL != paint) { 87824bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::PaintToString(*paint)); 87924bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com } 88024bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fInfo.push(SkObjectParser::SaveFlagsToString(flags)); 881902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 882902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8837a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkSaveLayerCommand::execute(SkCanvas* canvas) { 8847e32851d5473d14db5c396f5877e3dfcb7b19f6dskia.committer@gmail.com canvas->saveLayer(fBounds.isEmpty() ? NULL : &fBounds, 88524bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fPaintPtr, 88624bfdac3f3a95ad21fbe3c889f218560118f3b9frobertphillips@google.com fFlags); 887902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 888902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 8891643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.orgvoid SkSaveLayerCommand::vizExecute(SkCanvas* canvas) { 8901643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.org canvas->save(); 8911643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.org} 8921643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.org 8937a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkSaveLayerCommand::trackSaveState(int* state) { 8940699e02101405623ad47f225729ed2521b2a0501tomhudson@google.com (*state)++; 8950699e02101405623ad47f225729ed2521b2a0501tomhudson@google.com} 8960699e02101405623ad47f225729ed2521b2a0501tomhudson@google.com 89757f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkScaleCommand::SkScaleCommand(SkScalar sx, SkScalar sy) 89857f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(SCALE) { 8990df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fSx = sx; 9000df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fSy = sy; 901902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 9020df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(sx, "SkScalar sx: ")); 9030df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(sy, "SkScalar sy: ")); 904902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 905902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 9067a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkScaleCommand::execute(SkCanvas* canvas) { 9070df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com canvas->scale(fSx, fSy); 908902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 909902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 91057f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkSetMatrixCommand::SkSetMatrixCommand(const SkMatrix& matrix) 91157f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(SET_MATRIX) { 9120df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fMatrix = matrix; 913902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 9140df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::MatrixToString(matrix)); 915902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 916902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 9177a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkSetMatrixCommand::execute(SkCanvas* canvas) { 9180df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com canvas->setMatrix(fMatrix); 919902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 920902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 92157f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkSkewCommand::SkSkewCommand(SkScalar sx, SkScalar sy) 92257f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(SKEW) { 9230df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fSx = sx; 9240df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fSy = sy; 925902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 9260df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(sx, "SkScalar sx: ")); 9270df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(sy, "SkScalar sy: ")); 928902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 929902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 9307a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkSkewCommand::execute(SkCanvas* canvas) { 9310df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com canvas->skew(fSx, fSy); 932902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 933902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 93457f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkTranslateCommand::SkTranslateCommand(SkScalar dx, SkScalar dy) 93557f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(TRANSLATE) { 9360df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fDx = dx; 9370df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fDy = dy; 938902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 9390df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(dx, "SkScalar dx: ")); 9400df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com fInfo.push(SkObjectParser::ScalarToString(dy, "SkScalar dy: ")); 941902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 942902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com 9437a11591e5e09493f1589c93d53fd1fe10086920acommit-bot@chromium.orgvoid SkTranslateCommand::execute(SkCanvas* canvas) { 9440df2a9a8296173241671d47bd66f8474b4f46358robertphillips@google.com canvas->translate(fDx, fDy); 945902ebe5eb41a350b766238b3b103c22fe9fc0fb5chudy@google.com} 946210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org 947210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.orgSkPushCullCommand::SkPushCullCommand(const SkRect& cullRect) 94857f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org : INHERITED(PUSH_CULL) 94957f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.org , fCullRect(cullRect) { 950210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org fInfo.push(SkObjectParser::RectToString(cullRect)); 951210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org} 952210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org 953210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.orgvoid SkPushCullCommand::execute(SkCanvas* canvas) { 954210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org canvas->pushCull(fCullRect); 955210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org} 956210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org 9571643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.orgvoid SkPushCullCommand::vizExecute(SkCanvas* canvas) { 9581643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.org canvas->pushCull(fCullRect); 9591643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.org 9601643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.org SkPaint p; 9611643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.org p.setColor(SK_ColorCYAN); 9621643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.org p.setStyle(SkPaint::kStroke_Style); 9631643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.org canvas->drawRect(fCullRect, p); 9641643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.org} 9651643b2c9bc5adb4324bb459bb7811f58bc7c2d62commit-bot@chromium.org 96657f74e0aa931e7784d47cba3ecc83020aa8e72b2commit-bot@chromium.orgSkPopCullCommand::SkPopCullCommand() : INHERITED(POP_CULL) { } 967210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org 968210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.orgvoid SkPopCullCommand::execute(SkCanvas* canvas) { 969210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org canvas->popCull(); 970210ae2a42613b9048e8e8c4096c5bf4fe2ddf838commit-bot@chromium.org} 971