OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 "SampleCode.h" | 8 #include "SampleCode.h" |
9 #include "SkDumpCanvas.h" | 9 #include "SkDumpCanvas.h" |
10 #include "SkView.h" | 10 #include "SkView.h" |
(...skipping 28 matching lines...) Expand all Loading... |
39 | 39 |
40 bool filter(SkPaint*, Type t) override { | 40 bool filter(SkPaint*, Type t) override { |
41 return --fCount >= 0; | 41 return --fCount >= 0; |
42 } | 42 } |
43 | 43 |
44 int fCount; | 44 int fCount; |
45 }; | 45 }; |
46 | 46 |
47 class PictFileView : public SampleView { | 47 class PictFileView : public SampleView { |
48 public: | 48 public: |
49 PictFileView(const char name[] = NULL) | 49 PictFileView(const char name[] = nullptr) |
50 : fFilename(name) | 50 : fFilename(name) |
51 , fBBox(kNo_BBoxType) | 51 , fBBox(kNo_BBoxType) |
52 , fTileSize(SkSize::Make(0, 0)) { | 52 , fTileSize(SkSize::Make(0, 0)) { |
53 for (int i = 0; i < kBBoxTypeCount; ++i) { | 53 for (int i = 0; i < kBBoxTypeCount; ++i) { |
54 fPictures[i] = NULL; | 54 fPictures[i] = nullptr; |
55 } | 55 } |
56 fCount = 0; | 56 fCount = 0; |
57 } | 57 } |
58 | 58 |
59 virtual ~PictFileView() { | 59 virtual ~PictFileView() { |
60 for (int i = 0; i < kBBoxTypeCount; ++i) { | 60 for (int i = 0; i < kBBoxTypeCount; ++i) { |
61 SkSafeUnref(fPictures[i]); | 61 SkSafeUnref(fPictures[i]); |
62 } | 62 } |
63 } | 63 } |
64 | 64 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 | 119 |
120 if (!*picture) { | 120 if (!*picture) { |
121 *picture = LoadPicture(fFilename.c_str(), fBBox); | 121 *picture = LoadPicture(fFilename.c_str(), fBBox); |
122 } | 122 } |
123 if (*picture) { | 123 if (*picture) { |
124 SkCounterDrawFilter filter(fCount); | 124 SkCounterDrawFilter filter(fCount); |
125 if (fCount > 0) { | 125 if (fCount > 0) { |
126 canvas->setDrawFilter(&filter); | 126 canvas->setDrawFilter(&filter); |
127 } | 127 } |
128 canvas->drawPicture(*picture); | 128 canvas->drawPicture(*picture); |
129 canvas->setDrawFilter(NULL); | 129 canvas->setDrawFilter(nullptr); |
130 } | 130 } |
131 | 131 |
132 #ifdef SK_GLYPHCACHE_TRACK_HASH_STATS | 132 #ifdef SK_GLYPHCACHE_TRACK_HASH_STATS |
133 SkGlyphCache::Dump(); | 133 SkGlyphCache::Dump(); |
134 SkDebugf("\n"); | 134 SkDebugf("\n"); |
135 #endif | 135 #endif |
136 } | 136 } |
137 | 137 |
138 private: | 138 private: |
139 enum BBoxType { | 139 enum BBoxType { |
(...skipping 12 matching lines...) Expand all Loading... |
152 | 152 |
153 SkPicture* LoadPicture(const char path[], BBoxType bbox) { | 153 SkPicture* LoadPicture(const char path[], BBoxType bbox) { |
154 SkAutoTUnref<SkPicture> pic; | 154 SkAutoTUnref<SkPicture> pic; |
155 | 155 |
156 SkBitmap bm; | 156 SkBitmap bm; |
157 if (SkImageDecoder::DecodeFile(path, &bm)) { | 157 if (SkImageDecoder::DecodeFile(path, &bm)) { |
158 bm.setImmutable(); | 158 bm.setImmutable(); |
159 SkPictureRecorder recorder; | 159 SkPictureRecorder recorder; |
160 SkCanvas* can = recorder.beginRecording(SkIntToScalar(bm.width()), | 160 SkCanvas* can = recorder.beginRecording(SkIntToScalar(bm.width()), |
161 SkIntToScalar(bm.height()), | 161 SkIntToScalar(bm.height()), |
162 NULL, 0); | 162 nullptr, 0); |
163 can->drawBitmap(bm, 0, 0, NULL); | 163 can->drawBitmap(bm, 0, 0, nullptr); |
164 pic.reset(recorder.endRecording()); | 164 pic.reset(recorder.endRecording()); |
165 } else { | 165 } else { |
166 SkFILEStream stream(path); | 166 SkFILEStream stream(path); |
167 if (stream.isValid()) { | 167 if (stream.isValid()) { |
168 pic.reset(SkPicture::CreateFromStream(&stream)); | 168 pic.reset(SkPicture::CreateFromStream(&stream)); |
169 } else { | 169 } else { |
170 SkDebugf("coun't load picture at \"path\"\n", path); | 170 SkDebugf("coun't load picture at \"path\"\n", path); |
171 } | 171 } |
172 | 172 |
173 if (false) { // re-record | 173 if (false) { // re-record |
174 SkPictureRecorder recorder; | 174 SkPictureRecorder recorder; |
175 pic->playback(recorder.beginRecording(pic->cullRect().width(), | 175 pic->playback(recorder.beginRecording(pic->cullRect().width(), |
176 pic->cullRect().height(), | 176 pic->cullRect().height(), |
177 NULL, 0)); | 177 nullptr, 0)); |
178 SkAutoTUnref<SkPicture> p2(recorder.endRecording()); | 178 SkAutoTUnref<SkPicture> p2(recorder.endRecording()); |
179 | 179 |
180 SkString path2(path); | 180 SkString path2(path); |
181 path2.append(".new.skp"); | 181 path2.append(".new.skp"); |
182 SkFILEWStream writer(path2.c_str()); | 182 SkFILEWStream writer(path2.c_str()); |
183 p2->serialize(&writer); | 183 p2->serialize(&writer); |
184 } | 184 } |
185 } | 185 } |
186 | 186 |
187 if (NULL == pic) { | 187 if (nullptr == pic) { |
188 return NULL; | 188 return nullptr; |
189 } | 189 } |
190 | 190 |
191 SkAutoTDelete<SkBBHFactory> factory; | 191 SkAutoTDelete<SkBBHFactory> factory; |
192 switch (bbox) { | 192 switch (bbox) { |
193 case kNo_BBoxType: | 193 case kNo_BBoxType: |
194 // no bbox playback necessary | 194 // no bbox playback necessary |
195 return pic.detach(); | 195 return pic.detach(); |
196 case kRTree_BBoxType: | 196 case kRTree_BBoxType: |
197 factory.reset(new SkRTreeFactory); | 197 factory.reset(new SkRTreeFactory); |
198 break; | 198 break; |
(...skipping 15 matching lines...) Expand all Loading... |
214 SampleView* CreateSamplePictFileView(const char filename[]) { | 214 SampleView* CreateSamplePictFileView(const char filename[]) { |
215 return new PictFileView(filename); | 215 return new PictFileView(filename); |
216 } | 216 } |
217 | 217 |
218 ////////////////////////////////////////////////////////////////////////////// | 218 ////////////////////////////////////////////////////////////////////////////// |
219 | 219 |
220 #if 0 | 220 #if 0 |
221 static SkView* MyFactory() { return new PictFileView; } | 221 static SkView* MyFactory() { return new PictFileView; } |
222 static SkViewRegister reg(MyFactory); | 222 static SkViewRegister reg(MyFactory); |
223 #endif | 223 #endif |
OLD | NEW |