OLD | NEW |
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" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 */ | 77 */ |
78 class ETC1BitmapGM : public GM { | 78 class ETC1BitmapGM : public GM { |
79 public: | 79 public: |
80 ETC1BitmapGM() { } | 80 ETC1BitmapGM() { } |
81 virtual ~ETC1BitmapGM() { } | 81 virtual ~ETC1BitmapGM() { } |
82 | 82 |
83 protected: | 83 protected: |
84 virtual SkString onShortName() SK_OVERRIDE { | 84 virtual SkString onShortName() SK_OVERRIDE { |
85 SkString str = SkString("etc1bitmap_"); | 85 SkString str = SkString("etc1bitmap_"); |
86 str.append(this->fileExtension()); | 86 str.append(this->fileExtension()); |
87 if (this->isVolatile()) { | |
88 str.append("_volatile"); | |
89 } | |
90 return str; | 87 return str; |
91 } | 88 } |
92 | 89 |
93 virtual SkISize onISize() SK_OVERRIDE { | 90 virtual SkISize onISize() SK_OVERRIDE { |
94 return SkISize::Make(128, 128); | 91 return SkISize::Make(128, 128); |
95 } | 92 } |
96 | 93 |
97 virtual bool isVolatile() const { return false; } | |
98 | |
99 virtual SkString fileExtension() const = 0; | 94 virtual SkString fileExtension() const = 0; |
100 | 95 |
101 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 96 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
102 SkBitmap bm; | 97 SkBitmap bm; |
103 SkString filename = GetResourcePath("mandrill_128."); | 98 SkString filename = GetResourcePath("mandrill_128."); |
104 filename.append(this->fileExtension()); | 99 filename.append(this->fileExtension()); |
105 SkAutoTUnref<SkData> fileData(SkData::NewFromFileName(filename.c_str()))
; | 100 SkAutoTUnref<SkData> fileData(SkData::NewFromFileName(filename.c_str()))
; |
106 if (NULL == fileData) { | 101 if (NULL == fileData) { |
107 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"); |
108 return; | 103 return; |
109 } | 104 } |
110 | 105 |
111 if (!SkInstallDiscardablePixelRef( | 106 if (!SkInstallDiscardablePixelRef( |
112 SkDecodingImageGenerator::Create( | 107 SkDecodingImageGenerator::Create( |
113 fileData, SkDecodingImageGenerator::Options()), &bm)) { | 108 fileData, SkDecodingImageGenerator::Options()), &bm)) { |
114 SkDebugf("Could not install discardable pixel ref.\n"); | 109 SkDebugf("Could not install discardable pixel ref.\n"); |
115 return; | 110 return; |
116 } | 111 } |
117 | 112 |
118 bm.setIsVolatile(this->isVolatile()); | |
119 | |
120 canvas->drawBitmap(bm, 0, 0); | 113 canvas->drawBitmap(bm, 0, 0); |
121 } | 114 } |
122 | 115 |
123 private: | 116 private: |
124 typedef GM INHERITED; | 117 typedef GM INHERITED; |
125 }; | 118 }; |
126 | 119 |
127 // This class specializes ETC1BitmapGM to load the mandrill_128.pkm file. | 120 // This class specializes ETC1BitmapGM to load the mandrill_128.pkm file. |
128 class ETC1Bitmap_PKM_GM : public ETC1BitmapGM { | 121 class ETC1Bitmap_PKM_GM : public ETC1BitmapGM { |
129 public: | 122 public: |
130 ETC1Bitmap_PKM_GM() : ETC1BitmapGM() { } | 123 ETC1Bitmap_PKM_GM() : ETC1BitmapGM() { } |
131 virtual ~ETC1Bitmap_PKM_GM() { } | 124 virtual ~ETC1Bitmap_PKM_GM() { } |
132 | 125 |
133 protected: | 126 protected: |
134 | 127 |
135 virtual SkString fileExtension() const SK_OVERRIDE { return SkString("pkm");
} | 128 virtual SkString fileExtension() const SK_OVERRIDE { return SkString("pkm");
} |
136 | 129 |
137 private: | 130 private: |
138 typedef ETC1BitmapGM INHERITED; | 131 typedef ETC1BitmapGM INHERITED; |
139 }; | |
140 | |
141 // This class specializes ETC1BitmapGM to load the mandrill_128.pkm file in a vo
latile bitmap. | |
142 class ETC1Bitmap_PKM_VOLATILE_GM : public ETC1BitmapGM { | |
143 public: | |
144 ETC1Bitmap_PKM_VOLATILE_GM() : ETC1BitmapGM() { } | |
145 virtual ~ETC1Bitmap_PKM_VOLATILE_GM() { } | |
146 | |
147 protected: | |
148 | |
149 virtual SkString fileExtension() const SK_OVERRIDE { return SkString("pkm");
} | |
150 virtual bool isVolatile() const SK_OVERRIDE { return true; } | |
151 | |
152 private: | |
153 typedef ETC1BitmapGM INHERITED; | |
154 }; | 132 }; |
155 | 133 |
156 // This class specializes ETC1BitmapGM to load the mandrill_128.ktx file. | 134 // This class specializes ETC1BitmapGM to load the mandrill_128.ktx file. |
157 class ETC1Bitmap_KTX_GM : public ETC1BitmapGM { | 135 class ETC1Bitmap_KTX_GM : public ETC1BitmapGM { |
158 public: | 136 public: |
159 ETC1Bitmap_KTX_GM() : ETC1BitmapGM() { } | 137 ETC1Bitmap_KTX_GM() : ETC1BitmapGM() { } |
160 virtual ~ETC1Bitmap_KTX_GM() { } | 138 virtual ~ETC1Bitmap_KTX_GM() { } |
161 | 139 |
162 protected: | 140 protected: |
163 | 141 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 private: | 217 private: |
240 typedef GM INHERITED; | 218 typedef GM INHERITED; |
241 }; | 219 }; |
242 #endif // SK_IGNORE_ETC1_SUPPORT | 220 #endif // SK_IGNORE_ETC1_SUPPORT |
243 | 221 |
244 } // namespace skiagm | 222 } // namespace skiagm |
245 | 223 |
246 ////////////////////////////////////////////////////////////////////////////// | 224 ////////////////////////////////////////////////////////////////////////////// |
247 | 225 |
248 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_PKM_GM); ) | 226 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_PKM_GM); ) |
249 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_PKM_VOLATILE_GM); ) | |
250 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_KTX_GM); ) | 227 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_KTX_GM); ) |
251 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_R11_KTX_GM); ) | 228 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_R11_KTX_GM); ) |
252 | 229 |
253 #ifndef SK_IGNORE_ETC1_SUPPORT | 230 #ifndef SK_IGNORE_ETC1_SUPPORT |
254 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_NPOT_GM); ) | 231 DEF_GM( return SkNEW(skiagm::ETC1Bitmap_NPOT_GM); ) |
255 #endif // SK_IGNORE_ETC1_SUPPORT | 232 #endif // SK_IGNORE_ETC1_SUPPORT |
OLD | NEW |