diff options
author | 2013-10-14 18:29:23 +0000 | |
---|---|---|
committer | 2013-10-14 18:29:23 +0000 | |
commit | ea476e1725f38688b79aadf4c5e36c10c3141927 (patch) | |
tree | 379ac01c442ba937909c9fbf6905d28d79df85d9 /src/gpu | |
parent | 071860a868ac64453c46ced30e08f1172b10d91d (diff) |
swizzle color table if necessary
R=reed@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/27224003
git-svn-id: http://skia.googlecode.com/svn/trunk@11761 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/gpu')
-rw-r--r-- | src/gpu/SkGr.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp index 0b60ede836..9cafbf69c0 100644 --- a/src/gpu/SkGr.cpp +++ b/src/gpu/SkGr.cpp @@ -6,6 +6,7 @@ */ #include "SkGr.h" +#include "SkConfig8888.h" /* Fill out buffer with the compressed format Ganesh expects from a colortable based bitmap. [palette (colortable) + indices]. @@ -30,7 +31,11 @@ static void build_compressed_data(void* buffer, const SkBitmap& bitmap) { SkColorTable* ctable = bitmap.getColorTable(); char* dst = (char*)buffer; - memcpy(dst, ctable->lockColors(), ctable->count() * sizeof(SkPMColor)); + uint32_t* colorTableDst = reinterpret_cast<uint32_t*>(dst); + const uint32_t* colorTableSrc = reinterpret_cast<const uint32_t*>(ctable->lockColors()); + SkConvertConfig8888Pixels(colorTableDst, 0, SkCanvas::kRGBA_Premul_Config8888, + colorTableSrc, 0, SkCanvas::kNative_Premul_Config8888, + ctable->count(), 1); ctable->unlockColors(); // always skip a full 256 number of entries, even if we memcpy'd fewer |