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

Side by Side Diff: src/pipe/SkPipeCanvas.cpp

Issue 2347593004: test/fix/tweak writePicture/readPicture (Closed)
Patch Set: remove dead code 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 | « src/pipe/SkPipeCanvas.h ('k') | src/pipe/SkPipeFormat.h » ('j') | 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 2016 Google Inc. 2 * Copyright 2016 Google Inc.
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 "SkPathEffect.h" 8 #include "SkPathEffect.h"
9 #include "SkColorFilter.h" 9 #include "SkColorFilter.h"
10 #include "SkDrawLooper.h" 10 #include "SkDrawLooper.h"
(...skipping 1010 matching lines...) Expand 10 before | Expand all | Expand 10 after
1021 } 1021 }
1022 1022
1023 void SkPipeSerializer::setTypefaceSerializer(SkTypefaceSerializer* tfs) { 1023 void SkPipeSerializer::setTypefaceSerializer(SkTypefaceSerializer* tfs) {
1024 fImpl->fDeduper.setTypefaceSerializer(tfs); 1024 fImpl->fDeduper.setTypefaceSerializer(tfs);
1025 } 1025 }
1026 1026
1027 void SkPipeSerializer::resetCache() { 1027 void SkPipeSerializer::resetCache() {
1028 fImpl->fDeduper.resetCaches(); 1028 fImpl->fDeduper.resetCaches();
1029 } 1029 }
1030 1030
1031 void SkPipeSerializer::write(SkPicture* picture, SkWStream* stream) { 1031 sk_sp<SkData> SkPipeSerializer::writeImage(SkImage* image) {
1032 stream->write32(kDefinePicture_ExtPipeVerb); 1032 SkDynamicMemoryWStream stream;
1033 SkRect cull = picture->cullRect(); 1033 this->writeImage(image, &stream);
1034 stream->write(&cull.fLeft, sizeof(SkRect)); 1034 return stream.detachAsData();
1035 picture->playback(this->beginWrite(cull, stream));
1036 this->endWrite();
1037 } 1035 }
1038 1036
1039 void SkPipeSerializer::write(SkImage* image, SkWStream* stream) { 1037 sk_sp<SkData> SkPipeSerializer::writePicture(SkPicture* picture) {
1038 SkDynamicMemoryWStream stream;
1039 this->writePicture(picture, &stream);
1040 return stream.detachAsData();
1041 }
1042
1043 void SkPipeSerializer::writePicture(SkPicture* picture, SkWStream* stream) {
1044 int index = fImpl->fDeduper.findPicture(picture);
1045 if (0 == index) {
1046 // Try to define the picture
1047 this->beginWrite(picture->cullRect(), stream);
1048 index = fImpl->fDeduper.findOrDefinePicture(picture);
1049 this->endWrite();
1050 }
1051 stream->write32(pack_verb(SkPipeVerb::kWritePicture, index));
1052 }
1053
1054 void SkPipeSerializer::writeImage(SkImage* image, SkWStream* stream) {
1040 int index = fImpl->fDeduper.findImage(image); 1055 int index = fImpl->fDeduper.findImage(image);
1041 if (0 == index) { 1056 if (0 == index) {
1042 // Try to define the image 1057 // Try to define the image
1043 fImpl->fDeduper.setStream(stream); 1058 fImpl->fDeduper.setStream(stream);
1044 index = fImpl->fDeduper.findOrDefineImage(image); 1059 index = fImpl->fDeduper.findOrDefineImage(image);
1045 } 1060 }
1046 stream->write32(pack_verb(SkPipeVerb::kWriteImage, index)); 1061 stream->write32(pack_verb(SkPipeVerb::kWriteImage, index));
1047 } 1062 }
1048 1063
1049 SkCanvas* SkPipeSerializer::beginWrite(const SkRect& cull, SkWStream* stream) { 1064 SkCanvas* SkPipeSerializer::beginWrite(const SkRect& cull, SkWStream* stream) {
1050 SkASSERT(nullptr == fImpl->fCanvas); 1065 SkASSERT(nullptr == fImpl->fCanvas);
1051 fImpl->fCanvas.reset(new SkPipeCanvas(cull, &fImpl->fDeduper, stream)); 1066 fImpl->fCanvas.reset(new SkPipeCanvas(cull, &fImpl->fDeduper, stream));
1052 fImpl->fDeduper.setStream(stream); 1067 fImpl->fDeduper.setStream(stream);
1053 fImpl->fDeduper.setCanvas(fImpl->fCanvas.get()); 1068 fImpl->fDeduper.setCanvas(fImpl->fCanvas.get());
1054 return fImpl->fCanvas.get(); 1069 return fImpl->fCanvas.get();
1055 } 1070 }
1056 1071
1057 void SkPipeSerializer::endWrite() { 1072 void SkPipeSerializer::endWrite() {
1058 fImpl->fCanvas->restoreToCount(1); 1073 fImpl->fCanvas->restoreToCount(1);
1059 fImpl->fCanvas.reset(nullptr); 1074 fImpl->fCanvas.reset(nullptr);
1060 fImpl->fDeduper.setCanvas(nullptr); 1075 fImpl->fDeduper.setCanvas(nullptr);
1061 } 1076 }
OLDNEW
« no previous file with comments | « src/pipe/SkPipeCanvas.h ('k') | src/pipe/SkPipeFormat.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698