1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2011 Google Inc. 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */ 86c924ad46c89955e78e071c792ef00df9910b42freed@android.com#include "SkNWayCanvas.h" 96c924ad46c89955e78e071c792ef00df9910b42freed@android.com 106ae24e0f5fa3306054679d0ec8f9d1f5d35c2617reed@google.comSkNWayCanvas::SkNWayCanvas(int width, int height) 11e254310a55d55a710309714c48f7fbbe7a6126f7commit-bot@chromium.org : INHERITED(width, height) {} 126ae24e0f5fa3306054679d0ec8f9d1f5d35c2617reed@google.com 136c924ad46c89955e78e071c792ef00df9910b42freed@android.comSkNWayCanvas::~SkNWayCanvas() { 146c924ad46c89955e78e071c792ef00df9910b42freed@android.com this->removeAll(); 156c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 166c924ad46c89955e78e071c792ef00df9910b42freed@android.com 176c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::addCanvas(SkCanvas* canvas) { 186c924ad46c89955e78e071c792ef00df9910b42freed@android.com if (canvas) { 196c924ad46c89955e78e071c792ef00df9910b42freed@android.com canvas->ref(); 206c924ad46c89955e78e071c792ef00df9910b42freed@android.com *fList.append() = canvas; 216c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 226c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 236c924ad46c89955e78e071c792ef00df9910b42freed@android.com 246c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::removeCanvas(SkCanvas* canvas) { 256c924ad46c89955e78e071c792ef00df9910b42freed@android.com int index = fList.find(canvas); 266c924ad46c89955e78e071c792ef00df9910b42freed@android.com if (index >= 0) { 276c924ad46c89955e78e071c792ef00df9910b42freed@android.com canvas->unref(); 286c924ad46c89955e78e071c792ef00df9910b42freed@android.com fList.removeShuffle(index); 296c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 306c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 316c924ad46c89955e78e071c792ef00df9910b42freed@android.com 326c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::removeAll() { 336c924ad46c89955e78e071c792ef00df9910b42freed@android.com fList.unrefAll(); 346c924ad46c89955e78e071c792ef00df9910b42freed@android.com fList.reset(); 356c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 366c924ad46c89955e78e071c792ef00df9910b42freed@android.com 376c924ad46c89955e78e071c792ef00df9910b42freed@android.com/////////////////////////////////////////////////////////////////////////// 386c924ad46c89955e78e071c792ef00df9910b42freed@android.com// These are forwarded to the N canvases we're referencing 396c924ad46c89955e78e071c792ef00df9910b42freed@android.com 406c924ad46c89955e78e071c792ef00df9910b42freed@android.comclass SkNWayCanvas::Iter { 416c924ad46c89955e78e071c792ef00df9910b42freed@android.compublic: 426c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter(const SkTDArray<SkCanvas*>& list) : fList(list) { 436c924ad46c89955e78e071c792ef00df9910b42freed@android.com fIndex = 0; 446c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 456c924ad46c89955e78e071c792ef00df9910b42freed@android.com bool next() { 466c924ad46c89955e78e071c792ef00df9910b42freed@android.com if (fIndex < fList.count()) { 476c924ad46c89955e78e071c792ef00df9910b42freed@android.com fCanvas = fList[fIndex++]; 486c924ad46c89955e78e071c792ef00df9910b42freed@android.com return true; 496c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 506c924ad46c89955e78e071c792ef00df9910b42freed@android.com return false; 516c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 526c924ad46c89955e78e071c792ef00df9910b42freed@android.com SkCanvas* operator->() { return fCanvas; } 5374b461961607fa57a150a9282c410ef0cab38764vandebo@chromium.org 546c924ad46c89955e78e071c792ef00df9910b42freed@android.comprivate: 556c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkTDArray<SkCanvas*>& fList; 566c924ad46c89955e78e071c792ef00df9910b42freed@android.com int fIndex; 576c924ad46c89955e78e071c792ef00df9910b42freed@android.com SkCanvas* fCanvas; 586c924ad46c89955e78e071c792ef00df9910b42freed@android.com}; 596c924ad46c89955e78e071c792ef00df9910b42freed@android.com 60e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.orgvoid SkNWayCanvas::willSave(SaveFlags flags) { 616c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 626c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 636c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->save(flags); 646c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 65e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.org 66e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.org this->INHERITED::willSave(flags); 676c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 686c924ad46c89955e78e071c792ef00df9910b42freed@android.com 69e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.orgSkCanvas::SaveLayerStrategy SkNWayCanvas::willSaveLayer(const SkRect* bounds, const SkPaint* paint, 70e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.org SaveFlags flags) { 716c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 726c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 736c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->saveLayer(bounds, paint, flags); 746c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 75e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.org 76e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.org this->INHERITED::willSaveLayer(bounds, paint, flags); 77e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.org // No need for a layer. 78e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.org return kNoLayer_SaveLayerStrategy; 796c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 806c924ad46c89955e78e071c792ef00df9910b42freed@android.com 81e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.orgvoid SkNWayCanvas::willRestore() { 826c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 836c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 846c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->restore(); 856c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 86e54a23fcfa42b2fc9d320650de72bcb2d9566b2dcommit-bot@chromium.org this->INHERITED::willRestore(); 876c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 886c924ad46c89955e78e071c792ef00df9910b42freed@android.com 8944c48d062f7996b5b46917e1b312a32ad101f326commit-bot@chromium.orgvoid SkNWayCanvas::didConcat(const SkMatrix& matrix) { 906c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 916c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 926c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->concat(matrix); 936c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 9444c48d062f7996b5b46917e1b312a32ad101f326commit-bot@chromium.org this->INHERITED::didConcat(matrix); 956c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 966c924ad46c89955e78e071c792ef00df9910b42freed@android.com 9744c48d062f7996b5b46917e1b312a32ad101f326commit-bot@chromium.orgvoid SkNWayCanvas::didSetMatrix(const SkMatrix& matrix) { 986c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 996c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1006c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->setMatrix(matrix); 1016c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 10244c48d062f7996b5b46917e1b312a32ad101f326commit-bot@chromium.org this->INHERITED::didSetMatrix(matrix); 1036c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1046c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1058f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.comvoid SkNWayCanvas::onClipRect(const SkRect& rect, SkRegion::Op op, ClipEdgeStyle edgeStyle) { 1066c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1076c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1088f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.com iter->clipRect(rect, op, kSoft_ClipEdgeStyle == edgeStyle); 1096c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1108f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.com this->INHERITED::onClipRect(rect, op, edgeStyle); 1116c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1126c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1138f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.comvoid SkNWayCanvas::onClipRRect(const SkRRect& rrect, SkRegion::Op op, ClipEdgeStyle edgeStyle) { 1144ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com Iter iter(fList); 1154ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com while (iter.next()) { 1168f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.com iter->clipRRect(rrect, op, kSoft_ClipEdgeStyle == edgeStyle); 1174ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com } 1188f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.com this->INHERITED::onClipRRect(rrect, op, edgeStyle); 1194ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com} 1204ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com 1218f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.comvoid SkNWayCanvas::onClipPath(const SkPath& path, SkRegion::Op op, ClipEdgeStyle edgeStyle) { 1226c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1236c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1248f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.com iter->clipPath(path, op, kSoft_ClipEdgeStyle == edgeStyle); 1256c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1268f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.com this->INHERITED::onClipPath(path, op, edgeStyle); 1276c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1286c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1298f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.comvoid SkNWayCanvas::onClipRegion(const SkRegion& deviceRgn, SkRegion::Op op) { 1306c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1316c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1326c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->clipRegion(deviceRgn, op); 1336c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1348f90a892c5130d4d26b5588e1ff151d01a40688arobertphillips@google.com this->INHERITED::onClipRegion(deviceRgn, op); 1356c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1366c924ad46c89955e78e071c792ef00df9910b42freed@android.com 137be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.orgvoid SkNWayCanvas::clear(SkColor color) { 138be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org Iter iter(fList); 139be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org while (iter.next()) { 140be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org iter->clear(color); 141be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org } 142be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org} 143be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org 1446c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawPaint(const SkPaint& paint) { 1456c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1466c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1476c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPaint(paint); 1486c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1496c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1506c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1516c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawPoints(PointMode mode, size_t count, const SkPoint pts[], 1526c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint& paint) { 1536c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1546c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1556c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPoints(mode, count, pts, paint); 1566c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1576c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1586c924ad46c89955e78e071c792ef00df9910b42freed@android.com 159be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.orgvoid SkNWayCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { 1604ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com Iter iter(fList); 1614ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com while (iter.next()) { 162be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org iter->drawRect(rect, paint); 1634ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com } 1644ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com} 1654ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com 166be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.orgvoid SkNWayCanvas::drawOval(const SkRect& rect, const SkPaint& paint) { 1676c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1686c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 169be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org iter->drawOval(rect, paint); 1706c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1716c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1726c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1734ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.comvoid SkNWayCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { 1744ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com Iter iter(fList); 1754ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com while (iter.next()) { 1764ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com iter->drawRRect(rrect, paint); 1774ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com } 1784ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com} 1794ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com 180ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.orgvoid SkNWayCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, 181ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org const SkPaint& paint) { 182ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org Iter iter(fList); 183ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org while (iter.next()) { 184ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org iter->drawDRRect(outer, inner, paint); 185ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org } 186ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org} 187ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org 1887ce564cccb246ec56427085872b2e1458fe74bd1bsalomon@google.comvoid SkNWayCanvas::drawPath(const SkPath& path, const SkPaint& paint) { 1896c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1906c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1916c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPath(path, paint); 1926c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1936c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1946c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1956c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawBitmap(const SkBitmap& bitmap, SkScalar x, SkScalar y, 1966c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint* paint) { 1976c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1986c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1996c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawBitmap(bitmap, x, y, paint); 2006c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2016c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2026c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2037112173c3c4cd1b1e7da8cdf971d71f01dd91299reed@google.comvoid SkNWayCanvas::drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src, 204eed779d866e1e239bfb9ebc6a225b7345a41adf9commit-bot@chromium.org const SkRect& dst, const SkPaint* paint, 205eed779d866e1e239bfb9ebc6a225b7345a41adf9commit-bot@chromium.org DrawBitmapRectFlags flags) { 2066c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2076c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 208eed779d866e1e239bfb9ebc6a225b7345a41adf9commit-bot@chromium.org iter->drawBitmapRectToRect(bitmap, src, dst, paint, flags); 2096c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2106c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2116c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2126c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m, 2136c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint* paint) { 2146c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2156c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2166c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawBitmapMatrix(bitmap, m, paint); 2176c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2186c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2196c924ad46c89955e78e071c792ef00df9910b42freed@android.com 220be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.orgvoid SkNWayCanvas::drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, 221be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org const SkRect& dst, const SkPaint* paint) { 222be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org Iter iter(fList); 223be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org while (iter.next()) { 224be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org iter->drawBitmapNine(bitmap, center, dst, paint); 225be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org } 226be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org} 227be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org 2286c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawSprite(const SkBitmap& bitmap, int x, int y, 2296c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint* paint) { 2306c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2316c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2326c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawSprite(bitmap, x, y, paint); 2336c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2346c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2356c924ad46c89955e78e071c792ef00df9910b42freed@android.com 236e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.comvoid SkNWayCanvas::onDrawText(const void* text, size_t byteLength, SkScalar x, SkScalar y, 237e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.com const SkPaint& paint) { 2386c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2396c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2406c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawText(text, byteLength, x, y, paint); 2416c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2426c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2436c924ad46c89955e78e071c792ef00df9910b42freed@android.com 244e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.comvoid SkNWayCanvas::onDrawPosText(const void* text, size_t byteLength, const SkPoint pos[], 245e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.com const SkPaint& paint) { 2466c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2476c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2486c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPosText(text, byteLength, pos, paint); 2496c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2506c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2516c924ad46c89955e78e071c792ef00df9910b42freed@android.com 252e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.comvoid SkNWayCanvas::onDrawPosTextH(const void* text, size_t byteLength, const SkScalar xpos[], 253e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.com SkScalar constY, const SkPaint& paint) { 2546c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2556c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2566c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPosTextH(text, byteLength, xpos, constY, paint); 2576c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2586c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2596c924ad46c89955e78e071c792ef00df9910b42freed@android.com 260e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.comvoid SkNWayCanvas::onDrawTextOnPath(const void* text, size_t byteLength, const SkPath& path, 261e0d9ce890e67d02727ac2811bb456ddb64f827d4reed@google.com const SkMatrix* matrix, const SkPaint& paint) { 2626c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2636c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2646c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawTextOnPath(text, byteLength, path, matrix, paint); 2656c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2666c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2676c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2689b14f26d0f3a974f3dd626c8354e1db1cfcd322frobertphillipsvoid SkNWayCanvas::onDrawPicture(const SkPicture* picture) { 2696c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2706c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2716c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPicture(picture); 2726c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2736c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2746c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2756c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawVertices(VertexMode vmode, int vertexCount, 2766c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPoint vertices[], const SkPoint texs[], 2776c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkColor colors[], SkXfermode* xmode, 2786c924ad46c89955e78e071c792ef00df9910b42freed@android.com const uint16_t indices[], int indexCount, 2796c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint& paint) { 2806c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2816c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2826c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawVertices(vmode, vertexCount, vertices, texs, colors, xmode, 2836c924ad46c89955e78e071c792ef00df9910b42freed@android.com indices, indexCount, paint); 2846c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2856c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2866c924ad46c89955e78e071c792ef00df9910b42freed@android.com 287be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.orgvoid SkNWayCanvas::drawData(const void* data, size_t length) { 288be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org Iter iter(fList); 289be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org while (iter.next()) { 290be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org iter->drawData(data, length); 291be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org } 292be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org} 293be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org 2946c924ad46c89955e78e071c792ef00df9910b42freed@android.comSkDrawFilter* SkNWayCanvas::setDrawFilter(SkDrawFilter* filter) { 2956c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2966c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2976c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->setDrawFilter(filter); 2986c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2996c924ad46c89955e78e071c792ef00df9910b42freed@android.com return this->INHERITED::setDrawFilter(filter); 3006c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 30114cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org 30214cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.orgvoid SkNWayCanvas::beginCommentGroup(const char* description) { 30314cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org Iter iter(fList); 30414cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org while (iter.next()) { 30514cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org iter->beginCommentGroup(description); 30614cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org } 30714cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org} 30814cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org 30914cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.orgvoid SkNWayCanvas::addComment(const char* kywd, const char* value) { 31014cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org Iter iter(fList); 31114cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org while (iter.next()) { 31214cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org iter->addComment(kywd, value); 31314cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org } 31414cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org} 31514cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org 31614cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.orgvoid SkNWayCanvas::endCommentGroup() { 31714cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org Iter iter(fList); 31814cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org while (iter.next()) { 31914cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org iter->endCommentGroup(); 32014cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org } 32114cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org} 322