OLD | NEW |
1 | 1 |
2 #include "SkBitmap.h" | 2 #include "SkBitmap.h" |
3 #include "SkTableColorFilter.h" | 3 #include "SkTableColorFilter.h" |
4 #include "SkColorPriv.h" | 4 #include "SkColorPriv.h" |
5 #include "SkFlattenableBuffers.h" | 5 #include "SkFlattenableBuffers.h" |
6 #include "SkUnPreMultiply.h" | 6 #include "SkUnPreMultiply.h" |
7 #include "SkString.h" | 7 #include "SkString.h" |
8 | 8 |
9 class SkTable_ColorFilter : public SkColorFilter { | 9 class SkTable_ColorFilter : public SkColorFilter { |
10 public: | 10 public: |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 | 196 |
197 SkASSERT(raw <= sizeof(fStorage)); | 197 SkASSERT(raw <= sizeof(fStorage)); |
198 SkDEBUGCODE(size_t count = gCountNibBits[fFlags & 0xF]); | 198 SkDEBUGCODE(size_t count = gCountNibBits[fFlags & 0xF]); |
199 SkASSERT(raw == count * 256); | 199 SkASSERT(raw == count * 256); |
200 } | 200 } |
201 | 201 |
202 bool SkTable_ColorFilter::asComponentTable(SkBitmap* table) const { | 202 bool SkTable_ColorFilter::asComponentTable(SkBitmap* table) const { |
203 if (table) { | 203 if (table) { |
204 if (NULL == fBitmap) { | 204 if (NULL == fBitmap) { |
205 SkBitmap* bmp = SkNEW(SkBitmap); | 205 SkBitmap* bmp = SkNEW(SkBitmap); |
206 bmp->setConfig(SkBitmap::kA8_Config, 256, 4, 256); | 206 bmp->allocPixels(SkImageInfo::MakeA8(256, 4)); |
207 bmp->allocPixels(); | |
208 uint8_t* bitmapPixels = bmp->getAddr8(0, 0); | 207 uint8_t* bitmapPixels = bmp->getAddr8(0, 0); |
209 int offset = 0; | 208 int offset = 0; |
210 static const unsigned kFlags[] = { kA_Flag, kR_Flag, kG_Flag, kB_Fla
g }; | 209 static const unsigned kFlags[] = { kA_Flag, kR_Flag, kG_Flag, kB_Fla
g }; |
211 | 210 |
212 for (int x = 0; x < 4; ++x) { | 211 for (int x = 0; x < 4; ++x) { |
213 if (!(fFlags & kFlags[x])) { | 212 if (!(fFlags & kFlags[x])) { |
214 memcpy(bitmapPixels, gIdentityTable, sizeof(gIdentityTable))
; | 213 memcpy(bitmapPixels, gIdentityTable, sizeof(gIdentityTable))
; |
215 } else { | 214 } else { |
216 memcpy(bitmapPixels, fStorage + offset, 256); | 215 memcpy(bitmapPixels, fStorage + offset, 256); |
217 offset += 256; | 216 offset += 256; |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 SkColorFilter* SkTableColorFilter::CreateARGB(const uint8_t tableA[256], | 424 SkColorFilter* SkTableColorFilter::CreateARGB(const uint8_t tableA[256], |
426 const uint8_t tableR[256], | 425 const uint8_t tableR[256], |
427 const uint8_t tableG[256], | 426 const uint8_t tableG[256], |
428 const uint8_t tableB[256]) { | 427 const uint8_t tableB[256]) { |
429 return SkNEW_ARGS(SkTable_ColorFilter, (tableA, tableR, tableG, tableB)); | 428 return SkNEW_ARGS(SkTable_ColorFilter, (tableA, tableR, tableG, tableB)); |
430 } | 429 } |
431 | 430 |
432 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkTableColorFilter) | 431 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkTableColorFilter) |
433 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTable_ColorFilter) | 432 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTable_ColorFilter) |
434 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 433 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
OLD | NEW |