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

Side by Side Diff: gm/etc1bitmap.cpp

Issue 834633006: add ImageGenerator::NewFromData to porting layer (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: add helper for SkInstallDiscardablePixelRef(SkData*, ...) Created 5 years, 11 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
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 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 "gm.h" 8 #include "gm.h"
9 9
10 #include "Resources.h" 10 #include "Resources.h"
11 #include "SkCanvas.h" 11 #include "SkCanvas.h"
12 #include "SkData.h" 12 #include "SkData.h"
13 #include "SkDecodingImageGenerator.h" 13 #include "SkImageGenerator.h"
14 #include "SkImageDecoder.h" 14 #include "SkImageDecoder.h"
15 #include "SkOSFile.h" 15 #include "SkOSFile.h"
16 16
17 #ifndef SK_IGNORE_ETC1_SUPPORT 17 #ifndef SK_IGNORE_ETC1_SUPPORT
18 18
19 #include "etc1.h" 19 #include "etc1.h"
20 20
21 /** 21 /**
22 * Remove the last row and column of ETC1 blocks, effectively 22 * Remove the last row and column of ETC1 blocks, effectively
23 * making a texture that started as power of two into a texture 23 * making a texture that started as power of two into a texture
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { 96 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
97 SkBitmap bm; 97 SkBitmap bm;
98 SkString filename = GetResourcePath("mandrill_128."); 98 SkString filename = GetResourcePath("mandrill_128.");
99 filename.append(this->fileExtension()); 99 filename.append(this->fileExtension());
100 SkAutoTUnref<SkData> fileData(SkData::NewFromFileName(filename.c_str())) ; 100 SkAutoTUnref<SkData> fileData(SkData::NewFromFileName(filename.c_str())) ;
101 if (NULL == fileData) { 101 if (NULL == fileData) {
102 SkDebugf("Could not open the file. Did you forget to set the resourc ePath?\n"); 102 SkDebugf("Could not open the file. Did you forget to set the resourc ePath?\n");
103 return; 103 return;
104 } 104 }
105 105
106 if (!SkInstallDiscardablePixelRef( 106 if (!SkInstallDiscardablePixelRef(fileData, &bm)) {
107 SkDecodingImageGenerator::Create(
108 fileData, SkDecodingImageGenerator::Options()), &bm)) {
109 SkDebugf("Could not install discardable pixel ref.\n"); 107 SkDebugf("Could not install discardable pixel ref.\n");
110 return; 108 return;
111 } 109 }
112 110
113 canvas->drawBitmap(bm, 0, 0); 111 canvas->drawBitmap(bm, 0, 0);
114 } 112 }
115 113
116 private: 114 private:
117 typedef GM INHERITED; 115 typedef GM INHERITED;
118 }; 116 };
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 SkDebugf("ETC1 Data is poorly formatted.\n"); 195 SkDebugf("ETC1 Data is poorly formatted.\n");
198 return; 196 return;
199 } 197 }
200 198
201 SkASSERT(124 == width); 199 SkASSERT(124 == width);
202 SkASSERT(124 == height); 200 SkASSERT(124 == height);
203 201
204 size_t dataSz = etc1_get_encoded_data_size(width, height) + ETC_PKM_HEAD ER_SIZE; 202 size_t dataSz = etc1_get_encoded_data_size(width, height) + ETC_PKM_HEAD ER_SIZE;
205 SkAutoDataUnref nonPOTData(SkData::NewWithCopy(am.get(), dataSz)); 203 SkAutoDataUnref nonPOTData(SkData::NewWithCopy(am.get(), dataSz));
206 204
207 if (!SkInstallDiscardablePixelRef( 205 if (!SkInstallDiscardablePixelRef(nonPOTData, &bm)) {
208 SkDecodingImageGenerator::Create(
209 nonPOTData, SkDecodingImageGenerator::Options()), &bm)) {
210 SkDebugf("Could not install discardable pixel ref.\n"); 206 SkDebugf("Could not install discardable pixel ref.\n");
211 return; 207 return;
212 } 208 }
213 209
214 canvas->drawBitmap(bm, 0, 0); 210 canvas->drawBitmap(bm, 0, 0);
215 } 211 }
216 212
217 private: 213 private:
218 typedef GM INHERITED; 214 typedef GM INHERITED;
219 }; 215 };
220 #endif // SK_IGNORE_ETC1_SUPPORT 216 #endif // SK_IGNORE_ETC1_SUPPORT
221 217
222 } // namespace skiagm 218 } // namespace skiagm
223 219
224 ////////////////////////////////////////////////////////////////////////////// 220 //////////////////////////////////////////////////////////////////////////////
225 221
226 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_PKM_GM); ) 222 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_PKM_GM); )
227 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_KTX_GM); ) 223 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_KTX_GM); )
228 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_R11_KTX_GM); ) 224 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_R11_KTX_GM); )
229 225
230 #ifndef SK_IGNORE_ETC1_SUPPORT 226 #ifndef SK_IGNORE_ETC1_SUPPORT
231 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_NPOT_GM); ) 227 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_NPOT_GM); )
232 #endif // SK_IGNORE_ETC1_SUPPORT 228 #endif // SK_IGNORE_ETC1_SUPPORT
OLDNEW
« no previous file with comments | « gm/colorwheel.cpp ('k') | gm/factory.cpp » ('j') | include/core/SkImageGenerator.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698