Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(271)

Side by Side Diff: src/core/SkCanvas.cpp

Issue 2130973002: make some canvas utils virtual (for proxy based subclasses) (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/core/SkCanvas.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2008 The Android Open Source Project 2 * Copyright 2008 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkBitmapDevice.h" 8 #include "SkBitmapDevice.h"
9 #include "SkCanvas.h" 9 #include "SkCanvas.h"
10 #include "SkCanvasPriv.h" 10 #include "SkCanvasPriv.h"
(...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 // can decide to just make it a field in the device (rather than a ptr) 805 // can decide to just make it a field in the device (rather than a ptr)
806 if (nullptr == fMetaData) { 806 if (nullptr == fMetaData) {
807 fMetaData = new SkMetaData; 807 fMetaData = new SkMetaData;
808 } 808 }
809 return *fMetaData; 809 return *fMetaData;
810 } 810 }
811 811
812 /////////////////////////////////////////////////////////////////////////////// 812 ///////////////////////////////////////////////////////////////////////////////
813 813
814 void SkCanvas::flush() { 814 void SkCanvas::flush() {
815 this->onFlush();
816 }
817
818 void SkCanvas::onFlush() {
815 SkBaseDevice* device = this->getDevice(); 819 SkBaseDevice* device = this->getDevice();
816 if (device) { 820 if (device) {
817 device->flush(); 821 device->flush();
818 } 822 }
819 } 823 }
820 824
821 SkISize SkCanvas::getBaseLayerSize() const { 825 SkISize SkCanvas::getBaseLayerSize() const {
822 SkBaseDevice* d = this->getDevice(); 826 SkBaseDevice* d = this->getDevice();
823 return d ? SkISize::Make(d->width(), d->height()) : SkISize::Make(0, 0); 827 return d ? SkISize::Make(d->width(), d->height()) : SkISize::Make(0, 0);
824 } 828 }
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after
1364 } 1368 }
1365 return this->onNewSurface(info, *props); 1369 return this->onNewSurface(info, *props);
1366 } 1370 }
1367 1371
1368 sk_sp<SkSurface> SkCanvas::onNewSurface(const SkImageInfo& info, const SkSurface Props& props) { 1372 sk_sp<SkSurface> SkCanvas::onNewSurface(const SkImageInfo& info, const SkSurface Props& props) {
1369 SkBaseDevice* dev = this->getDevice(); 1373 SkBaseDevice* dev = this->getDevice();
1370 return dev ? dev->makeSurface(info, props) : nullptr; 1374 return dev ? dev->makeSurface(info, props) : nullptr;
1371 } 1375 }
1372 1376
1373 SkImageInfo SkCanvas::imageInfo() const { 1377 SkImageInfo SkCanvas::imageInfo() const {
1378 return this->onImageInfo();
1379 }
1380
1381 SkImageInfo SkCanvas::onImageInfo() const {
1374 SkBaseDevice* dev = this->getDevice(); 1382 SkBaseDevice* dev = this->getDevice();
1375 if (dev) { 1383 if (dev) {
1376 return dev->imageInfo(); 1384 return dev->imageInfo();
1377 } else { 1385 } else {
1378 return SkImageInfo::MakeUnknown(0, 0); 1386 return SkImageInfo::MakeUnknown(0, 0);
1379 } 1387 }
1380 } 1388 }
1381 1389
1382 bool SkCanvas::getProps(SkSurfaceProps* props) const { 1390 bool SkCanvas::getProps(SkSurfaceProps* props) const {
1391 return this->onGetProps(props);
1392 }
1393
1394 bool SkCanvas::onGetProps(SkSurfaceProps* props) const {
1383 SkBaseDevice* dev = this->getDevice(); 1395 SkBaseDevice* dev = this->getDevice();
1384 if (dev) { 1396 if (dev) {
1385 if (props) { 1397 if (props) {
1386 *props = fProps; 1398 *props = fProps;
1387 } 1399 }
1388 return true; 1400 return true;
1389 } else { 1401 } else {
1390 return false; 1402 return false;
1391 } 1403 }
1392 } 1404 }
(...skipping 1516 matching lines...) Expand 10 before | Expand all | Expand 10 after
2909 2921
2910 SkRect r; 2922 SkRect r;
2911 r.set(cx - radius, cy - radius, cx + radius, cy + radius); 2923 r.set(cx - radius, cy - radius, cx + radius, cy + radius);
2912 this->drawOval(r, paint); 2924 this->drawOval(r, paint);
2913 } 2925 }
2914 2926
2915 void SkCanvas::drawRoundRect(const SkRect& r, SkScalar rx, SkScalar ry, 2927 void SkCanvas::drawRoundRect(const SkRect& r, SkScalar rx, SkScalar ry,
2916 const SkPaint& paint) { 2928 const SkPaint& paint) {
2917 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawRoundRect()"); 2929 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawRoundRect()");
2918 if (rx > 0 && ry > 0) { 2930 if (rx > 0 && ry > 0) {
2919 if (paint.canComputeFastBounds()) {
2920 SkRect storage;
2921 if (this->quickReject(paint.computeFastBounds(r, &storage))) {
2922 return;
2923 }
2924 }
2925 SkRRect rrect; 2931 SkRRect rrect;
2926 rrect.setRectXY(r, rx, ry); 2932 rrect.setRectXY(r, rx, ry);
2927 this->drawRRect(rrect, paint); 2933 this->drawRRect(rrect, paint);
2928 } else { 2934 } else {
2929 this->drawRect(r, paint); 2935 this->drawRect(r, paint);
2930 } 2936 }
2931 } 2937 }
2932 2938
2933 void SkCanvas::drawArc(const SkRect& oval, SkScalar startAngle, 2939 void SkCanvas::drawArc(const SkRect& oval, SkScalar startAngle,
2934 SkScalar sweepAngle, bool useCenter, 2940 SkScalar sweepAngle, bool useCenter,
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
3116 3122
3117 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() { 3123 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() {
3118 fCanvas->restoreToCount(fSaveCount); 3124 fCanvas->restoreToCount(fSaveCount);
3119 } 3125 }
3120 3126
3121 #ifdef SK_SUPPORT_LEGACY_NEW_SURFACE_API 3127 #ifdef SK_SUPPORT_LEGACY_NEW_SURFACE_API
3122 SkSurface* SkCanvas::newSurface(const SkImageInfo& info, const SkSurfaceProps* p rops) { 3128 SkSurface* SkCanvas::newSurface(const SkImageInfo& info, const SkSurfaceProps* p rops) {
3123 return this->makeSurface(info, props).release(); 3129 return this->makeSurface(info, props).release();
3124 } 3130 }
3125 #endif 3131 #endif
OLDNEW
« no previous file with comments | « include/core/SkCanvas.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698