| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2007 The Android Open Source Project | 3 * Copyright 2007 The Android Open Source Project |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 #include "SkPictureFlat.h" | 10 #include "SkPictureFlat.h" |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 return fData->getActiveOps(queryRect); | 190 return fData->getActiveOps(queryRect); |
| 191 } | 191 } |
| 192 return NULL; | 192 return NULL; |
| 193 } | 193 } |
| 194 | 194 |
| 195 // fRecord OK | 195 // fRecord OK |
| 196 void SkPicture::draw(SkCanvas* canvas, SkDrawPictureCallback* callback) const { | 196 void SkPicture::draw(SkCanvas* canvas, SkDrawPictureCallback* callback) const { |
| 197 SkASSERT(NULL != canvas); | 197 SkASSERT(NULL != canvas); |
| 198 SkASSERT(NULL != fData.get() || NULL != fRecord.get()); | 198 SkASSERT(NULL != fData.get() || NULL != fRecord.get()); |
| 199 | 199 |
| 200 // If the query contains the whole picture, don't bother with the BBH. |
| 201 SkRect clipBounds = { 0, 0, 0, 0 }; |
| 202 (void)canvas->getClipBounds(&clipBounds); |
| 203 const bool useBBH = !clipBounds.contains(SkRect::MakeWH(this->width(), this-
>height())); |
| 204 |
| 200 if (NULL != fData.get()) { | 205 if (NULL != fData.get()) { |
| 201 SkPicturePlayback playback(this); | 206 SkPicturePlayback playback(this); |
| 207 playback.setUseBBH(useBBH); |
| 202 playback.draw(canvas, callback); | 208 playback.draw(canvas, callback); |
| 203 } | 209 } |
| 204 if (NULL != fRecord.get()) { | 210 if (NULL != fRecord.get()) { |
| 205 SkRecordDraw(*fRecord, canvas, fBBH.get(), callback); | 211 SkRecordDraw(*fRecord, canvas, useBBH ? fBBH.get() : NULL, callback); |
| 206 } | 212 } |
| 207 } | 213 } |
| 208 | 214 |
| 209 /////////////////////////////////////////////////////////////////////////////// | 215 /////////////////////////////////////////////////////////////////////////////// |
| 210 | 216 |
| 211 #include "SkStream.h" | 217 #include "SkStream.h" |
| 212 | 218 |
| 213 static const char kMagic[] = { 's', 'k', 'i', 'a', 'p', 'i', 'c', 't' }; | 219 static const char kMagic[] = { 's', 'k', 'i', 'a', 'p', 'i', 'c', 't' }; |
| 214 | 220 |
| 215 // fRecord OK | 221 // fRecord OK |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 int SkPicture::approximateOpCount() const { | 466 int SkPicture::approximateOpCount() const { |
| 461 SkASSERT(fRecord.get() || fData.get()); | 467 SkASSERT(fRecord.get() || fData.get()); |
| 462 if (fRecord.get()) { | 468 if (fRecord.get()) { |
| 463 return fRecord->count(); | 469 return fRecord->count(); |
| 464 } | 470 } |
| 465 if (fData.get()) { | 471 if (fData.get()) { |
| 466 return fData->opCount(); | 472 return fData->opCount(); |
| 467 } | 473 } |
| 468 return 0; | 474 return 0; |
| 469 } | 475 } |
| OLD | NEW |