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

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

Issue 2352083004: Turn off quickReject() for Android framework drawables
Patch Set: Created 4 years, 3 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 | « no previous file | 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 2995 matching lines...) Expand 10 before | Expand all | Expand 10 after
3006 3006
3007 void SkCanvas::drawDrawable(SkDrawable* dr, const SkMatrix* matrix) { 3007 void SkCanvas::drawDrawable(SkDrawable* dr, const SkMatrix* matrix) {
3008 RETURN_ON_NULL(dr); 3008 RETURN_ON_NULL(dr);
3009 if (matrix && matrix->isIdentity()) { 3009 if (matrix && matrix->isIdentity()) {
3010 matrix = nullptr; 3010 matrix = nullptr;
3011 } 3011 }
3012 this->onDrawDrawable(dr, matrix); 3012 this->onDrawDrawable(dr, matrix);
3013 } 3013 }
3014 3014
3015 void SkCanvas::onDrawDrawable(SkDrawable* dr, const SkMatrix* matrix) { 3015 void SkCanvas::onDrawDrawable(SkDrawable* dr, const SkMatrix* matrix) {
3016 // b/31304115
3017 // We cannot trust that the clip bounds are set correctly by the framework.
3018 #ifndef SK_BUILD_FOR_ANDROID_FRAMEWORK
3016 SkRect bounds = dr->getBounds(); 3019 SkRect bounds = dr->getBounds();
3017 if (matrix) { 3020 if (matrix) {
3018 matrix->mapRect(&bounds); 3021 matrix->mapRect(&bounds);
3019 } 3022 }
3020 if (this->quickReject(bounds)) { 3023 if (this->quickReject(bounds)) {
3021 return; 3024 return;
3022 } 3025 }
3026 #endif
3027
3023 dr->draw(this, matrix); 3028 dr->draw(this, matrix);
3024 } 3029 }
3025 3030
3026 void SkCanvas::onDrawAtlas(const SkImage* atlas, const SkRSXform xform[], const SkRect tex[], 3031 void SkCanvas::onDrawAtlas(const SkImage* atlas, const SkRSXform xform[], const SkRect tex[],
3027 const SkColor colors[], int count, SkXfermode::Mode m ode, 3032 const SkColor colors[], int count, SkXfermode::Mode m ode,
3028 const SkRect* cull, const SkPaint* paint) { 3033 const SkRect* cull, const SkPaint* paint) {
3029 if (cull && this->quickReject(*cull)) { 3034 if (cull && this->quickReject(*cull)) {
3030 return; 3035 return;
3031 } 3036 }
3032 3037
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
3504 3509
3505 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() { 3510 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() {
3506 fCanvas->restoreToCount(fSaveCount); 3511 fCanvas->restoreToCount(fSaveCount);
3507 } 3512 }
3508 3513
3509 #ifdef SK_SUPPORT_LEGACY_NEW_SURFACE_API 3514 #ifdef SK_SUPPORT_LEGACY_NEW_SURFACE_API
3510 SkSurface* SkCanvas::newSurface(const SkImageInfo& info, const SkSurfaceProps* p rops) { 3515 SkSurface* SkCanvas::newSurface(const SkImageInfo& info, const SkSurfaceProps* p rops) {
3511 return this->makeSurface(info, props).release(); 3516 return this->makeSurface(info, props).release();
3512 } 3517 }
3513 #endif 3518 #endif
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698