SkNWayCanvas.cpp revision ab5827354e2c23624acc3fc1fe4a83788bc99e96
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 606c924ad46c89955e78e071c792ef00df9910b42freed@android.comint SkNWayCanvas::save(SaveFlags flags) { 616c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 626c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 636c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->save(flags); 646c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 656c924ad46c89955e78e071c792ef00df9910b42freed@android.com return this->INHERITED::save(flags); 666c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 676c924ad46c89955e78e071c792ef00df9910b42freed@android.com 686c924ad46c89955e78e071c792ef00df9910b42freed@android.comint SkNWayCanvas::saveLayer(const SkRect* bounds, const SkPaint* paint, 696c924ad46c89955e78e071c792ef00df9910b42freed@android.com SaveFlags flags) { 706c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 716c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 726c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->saveLayer(bounds, paint, flags); 736c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 746c924ad46c89955e78e071c792ef00df9910b42freed@android.com return this->INHERITED::saveLayer(bounds, paint, flags); 756c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 766c924ad46c89955e78e071c792ef00df9910b42freed@android.com 776c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::restore() { 786c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 796c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 806c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->restore(); 816c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 826c924ad46c89955e78e071c792ef00df9910b42freed@android.com this->INHERITED::restore(); 836c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 846c924ad46c89955e78e071c792ef00df9910b42freed@android.com 856c924ad46c89955e78e071c792ef00df9910b42freed@android.combool SkNWayCanvas::translate(SkScalar dx, SkScalar dy) { 866c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 876c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 886c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->translate(dx, dy); 896c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 906c924ad46c89955e78e071c792ef00df9910b42freed@android.com return this->INHERITED::translate(dx, dy); 916c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 926c924ad46c89955e78e071c792ef00df9910b42freed@android.com 936c924ad46c89955e78e071c792ef00df9910b42freed@android.combool SkNWayCanvas::scale(SkScalar sx, SkScalar sy) { 946c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 956c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 966c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->scale(sx, sy); 976c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 986c924ad46c89955e78e071c792ef00df9910b42freed@android.com return this->INHERITED::scale(sx, sy); 996c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1006c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1016c924ad46c89955e78e071c792ef00df9910b42freed@android.combool SkNWayCanvas::rotate(SkScalar degrees) { 1026c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1036c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1046c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->rotate(degrees); 1056c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1066c924ad46c89955e78e071c792ef00df9910b42freed@android.com return this->INHERITED::rotate(degrees); 1076c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1086c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1096c924ad46c89955e78e071c792ef00df9910b42freed@android.combool SkNWayCanvas::skew(SkScalar sx, SkScalar sy) { 1106c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1116c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1126c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->skew(sx, sy); 1136c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1146c924ad46c89955e78e071c792ef00df9910b42freed@android.com return this->INHERITED::skew(sx, sy); 1156c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1166c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1176c924ad46c89955e78e071c792ef00df9910b42freed@android.combool SkNWayCanvas::concat(const SkMatrix& matrix) { 1186c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1196c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1206c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->concat(matrix); 1216c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1226c924ad46c89955e78e071c792ef00df9910b42freed@android.com return this->INHERITED::concat(matrix); 1236c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1246c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1256c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::setMatrix(const SkMatrix& matrix) { 1266c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1276c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1286c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->setMatrix(matrix); 1296c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1306c924ad46c89955e78e071c792ef00df9910b42freed@android.com this->INHERITED::setMatrix(matrix); 1316c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1326c924ad46c89955e78e071c792ef00df9910b42freed@android.com 133071eef918d70b6ca8334bc1241d1ea6923e828d5reed@google.combool SkNWayCanvas::clipRect(const SkRect& rect, SkRegion::Op op, bool doAA) { 1346c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1356c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 136071eef918d70b6ca8334bc1241d1ea6923e828d5reed@google.com iter->clipRect(rect, op, doAA); 1376c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 138071eef918d70b6ca8334bc1241d1ea6923e828d5reed@google.com return this->INHERITED::clipRect(rect, op, doAA); 1396c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1406c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1414ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.combool SkNWayCanvas::clipRRect(const SkRRect& rrect, SkRegion::Op op, bool doAA) { 1424ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com Iter iter(fList); 1434ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com while (iter.next()) { 1444ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com iter->clipRRect(rrect, op, doAA); 1454ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com } 1464ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com return this->INHERITED::clipRRect(rrect, op, doAA); 1474ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com} 1484ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com 149071eef918d70b6ca8334bc1241d1ea6923e828d5reed@google.combool SkNWayCanvas::clipPath(const SkPath& path, SkRegion::Op op, bool doAA) { 1506c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1516c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 152071eef918d70b6ca8334bc1241d1ea6923e828d5reed@google.com iter->clipPath(path, op, doAA); 1536c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 154071eef918d70b6ca8334bc1241d1ea6923e828d5reed@google.com return this->INHERITED::clipPath(path, op, doAA); 1556c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1566c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1576c924ad46c89955e78e071c792ef00df9910b42freed@android.combool SkNWayCanvas::clipRegion(const SkRegion& deviceRgn, SkRegion::Op op) { 1586c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1596c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1606c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->clipRegion(deviceRgn, op); 1616c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1626c924ad46c89955e78e071c792ef00df9910b42freed@android.com return this->INHERITED::clipRegion(deviceRgn, op); 1636c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1646c924ad46c89955e78e071c792ef00df9910b42freed@android.com 165be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.orgvoid SkNWayCanvas::clear(SkColor color) { 166be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org Iter iter(fList); 167be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org while (iter.next()) { 168be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org iter->clear(color); 169be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org } 170be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org} 171be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org 1726c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawPaint(const SkPaint& paint) { 1736c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1746c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1756c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPaint(paint); 1766c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1776c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1786c924ad46c89955e78e071c792ef00df9910b42freed@android.com 1796c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawPoints(PointMode mode, size_t count, const SkPoint pts[], 1806c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint& paint) { 1816c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1826c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 1836c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPoints(mode, count, pts, paint); 1846c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1856c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 1866c924ad46c89955e78e071c792ef00df9910b42freed@android.com 187be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.orgvoid SkNWayCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { 1884ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com Iter iter(fList); 1894ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com while (iter.next()) { 190be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org iter->drawRect(rect, paint); 1914ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com } 1924ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com} 1934ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com 194be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.orgvoid SkNWayCanvas::drawOval(const SkRect& rect, const SkPaint& paint) { 1956c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 1966c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 197be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org iter->drawOval(rect, paint); 1986c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 1996c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2006c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2014ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.comvoid SkNWayCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { 2024ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com Iter iter(fList); 2034ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com while (iter.next()) { 2044ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com iter->drawRRect(rrect, paint); 2054ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com } 2064ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com} 2074ed0fb768409bf97b79899c3990d8c15f5e9d784reed@google.com 208ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.orgvoid SkNWayCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, 209ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org const SkPaint& paint) { 210ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org Iter iter(fList); 211ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org while (iter.next()) { 212ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org iter->drawDRRect(outer, inner, paint); 213ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org } 214ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org} 215ab5827354e2c23624acc3fc1fe4a83788bc99e96commit-bot@chromium.org 2167ce564cccb246ec56427085872b2e1458fe74bd1bsalomon@google.comvoid SkNWayCanvas::drawPath(const SkPath& path, const SkPaint& paint) { 2176c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2186c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2196c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPath(path, paint); 2206c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2216c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2226c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2236c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawBitmap(const SkBitmap& bitmap, SkScalar x, SkScalar y, 2246c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint* paint) { 2256c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2266c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2276c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawBitmap(bitmap, x, y, paint); 2286c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2296c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2306c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2317112173c3c4cd1b1e7da8cdf971d71f01dd91299reed@google.comvoid SkNWayCanvas::drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src, 232eed779d866e1e239bfb9ebc6a225b7345a41adf9commit-bot@chromium.org const SkRect& dst, const SkPaint* paint, 233eed779d866e1e239bfb9ebc6a225b7345a41adf9commit-bot@chromium.org DrawBitmapRectFlags flags) { 2346c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2356c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 236eed779d866e1e239bfb9ebc6a225b7345a41adf9commit-bot@chromium.org iter->drawBitmapRectToRect(bitmap, src, dst, paint, flags); 2376c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2386c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2396c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2406c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m, 2416c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint* paint) { 2426c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2436c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2446c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawBitmapMatrix(bitmap, m, paint); 2456c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2466c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2476c924ad46c89955e78e071c792ef00df9910b42freed@android.com 248be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.orgvoid SkNWayCanvas::drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, 249be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org const SkRect& dst, const SkPaint* paint) { 250be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org Iter iter(fList); 251be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org while (iter.next()) { 252be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org iter->drawBitmapNine(bitmap, center, dst, paint); 253be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org } 254be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org} 255be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org 2566c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawSprite(const SkBitmap& bitmap, int x, int y, 2576c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint* paint) { 2586c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2596c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2606c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawSprite(bitmap, x, y, paint); 2616c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2626c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2636c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2646c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawText(const void* text, size_t byteLength, SkScalar x, 2656c924ad46c89955e78e071c792ef00df9910b42freed@android.com SkScalar y, const SkPaint& paint) { 2666c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2676c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2686c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawText(text, byteLength, x, y, paint); 2696c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2706c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2716c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2726c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawPosText(const void* text, size_t byteLength, 2736c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPoint pos[], const SkPaint& paint) { 2746c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2756c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2766c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPosText(text, byteLength, pos, paint); 2776c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2786c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2796c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2806c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawPosTextH(const void* text, size_t byteLength, 2816c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkScalar xpos[], SkScalar constY, 2826c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint& paint) { 2836c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2846c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2856c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPosTextH(text, byteLength, xpos, constY, paint); 2866c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2876c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2886c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2896c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawTextOnPath(const void* text, size_t byteLength, 2906c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPath& path, const SkMatrix* matrix, 2916c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint& paint) { 2926c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 2936c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 2946c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawTextOnPath(text, byteLength, path, matrix, paint); 2956c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 2966c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 2976c924ad46c89955e78e071c792ef00df9910b42freed@android.com 2986c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawPicture(SkPicture& picture) { 2996c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 3006c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 3016c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawPicture(picture); 3026c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 3036c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 3046c924ad46c89955e78e071c792ef00df9910b42freed@android.com 3056c924ad46c89955e78e071c792ef00df9910b42freed@android.comvoid SkNWayCanvas::drawVertices(VertexMode vmode, int vertexCount, 3066c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPoint vertices[], const SkPoint texs[], 3076c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkColor colors[], SkXfermode* xmode, 3086c924ad46c89955e78e071c792ef00df9910b42freed@android.com const uint16_t indices[], int indexCount, 3096c924ad46c89955e78e071c792ef00df9910b42freed@android.com const SkPaint& paint) { 3106c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 3116c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 3126c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->drawVertices(vmode, vertexCount, vertices, texs, colors, xmode, 3136c924ad46c89955e78e071c792ef00df9910b42freed@android.com indices, indexCount, paint); 3146c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 3156c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 3166c924ad46c89955e78e071c792ef00df9910b42freed@android.com 317be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.orgvoid SkNWayCanvas::drawData(const void* data, size_t length) { 318be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org Iter iter(fList); 319be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org while (iter.next()) { 320be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org iter->drawData(data, length); 321be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org } 322be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org} 323be65a4c9d6ce40e7fc27e5a830196bcaa7be97c9commit-bot@chromium.org 3246c924ad46c89955e78e071c792ef00df9910b42freed@android.comSkBounder* SkNWayCanvas::setBounder(SkBounder* bounder) { 3256c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 3266c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 3276c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->setBounder(bounder); 3286c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 3296c924ad46c89955e78e071c792ef00df9910b42freed@android.com return this->INHERITED::setBounder(bounder); 3306c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 3316c924ad46c89955e78e071c792ef00df9910b42freed@android.com 3326c924ad46c89955e78e071c792ef00df9910b42freed@android.comSkDrawFilter* SkNWayCanvas::setDrawFilter(SkDrawFilter* filter) { 3336c924ad46c89955e78e071c792ef00df9910b42freed@android.com Iter iter(fList); 3346c924ad46c89955e78e071c792ef00df9910b42freed@android.com while (iter.next()) { 3356c924ad46c89955e78e071c792ef00df9910b42freed@android.com iter->setDrawFilter(filter); 3366c924ad46c89955e78e071c792ef00df9910b42freed@android.com } 3376c924ad46c89955e78e071c792ef00df9910b42freed@android.com return this->INHERITED::setDrawFilter(filter); 3386c924ad46c89955e78e071c792ef00df9910b42freed@android.com} 33914cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org 34014cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.orgvoid SkNWayCanvas::beginCommentGroup(const char* description) { 34114cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org Iter iter(fList); 34214cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org while (iter.next()) { 34314cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org iter->beginCommentGroup(description); 34414cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org } 34514cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org} 34614cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org 34714cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.orgvoid SkNWayCanvas::addComment(const char* kywd, const char* value) { 34814cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org Iter iter(fList); 34914cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org while (iter.next()) { 35014cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org iter->addComment(kywd, value); 35114cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org } 35214cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org} 35314cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org 35414cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.orgvoid SkNWayCanvas::endCommentGroup() { 35514cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org Iter iter(fList); 35614cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org while (iter.next()) { 35714cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org iter->endCommentGroup(); 35814cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org } 35914cec91fe1dbe4986bfacdff8e2eb8928d60fb77commit-bot@chromium.org} 360