| Index: bench/BitmapBench.cpp
|
| diff --git a/bench/BitmapBench.cpp b/bench/BitmapBench.cpp
|
| index 9b3a6a29dd082cf236a4259c8c743312e27b947e..982c917c02691319bc9a4b911c625b88d0f50066 100644
|
| --- a/bench/BitmapBench.cpp
|
| +++ b/bench/BitmapBench.cpp
|
| @@ -33,9 +33,9 @@ static uint8_t compute666Index(SkPMColor c) {
|
| return convByteTo6(r) * 36 + convByteTo6(g) * 6 + convByteTo6(b);
|
| }
|
|
|
| -static void convertToIndex666(const SkBitmap& src, SkBitmap* dst) {
|
| - SkColorTable* ctable = new SkColorTable(216);
|
| - SkPMColor* colors = ctable->lockColors();
|
| +static void convertToIndex666(const SkBitmap& src, SkBitmap* dst, bool isOpaque) {
|
| + SkPMColor storage[216];
|
| + SkPMColor* colors = storage;
|
| // rrr ggg bbb
|
| for (int r = 0; r < 6; r++) {
|
| int rr = conv6ToByte(r);
|
| @@ -47,7 +47,8 @@ static void convertToIndex666(const SkBitmap& src, SkBitmap* dst) {
|
| }
|
| }
|
| }
|
| - ctable->unlockColors(true);
|
| + SkColorTable* ctable = new SkColorTable(storage, 216,
|
| + isOpaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType);
|
| dst->setConfig(SkBitmap::kIndex8_Config, src.width(), src.height());
|
| dst->allocPixels(ctable);
|
| ctable->unref();
|
| @@ -120,14 +121,11 @@ protected:
|
| onDrawIntoBitmap(bm);
|
|
|
| if (SkBitmap::kIndex8_Config == fConfig) {
|
| - convertToIndex666(bm, &fBitmap);
|
| + convertToIndex666(bm, &fBitmap, fIsOpaque);
|
| } else {
|
| fBitmap = bm;
|
| }
|
|
|
| - if (fBitmap.getColorTable()) {
|
| - fBitmap.getColorTable()->setIsOpaque(fIsOpaque);
|
| - }
|
| fBitmap.setIsOpaque(fIsOpaque);
|
| fBitmap.setIsVolatile(fIsVolatile);
|
| }
|
|
|