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

Unified Diff: src/gpu/SkGr.cpp

Issue 27224003: swizzle color table if necessary (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/SkGr.cpp
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index 0b60ede8361ac80febc27ebd0c96b45b49d4f044..9cafbf69c0d030a281f4629c503cb52bcc61e0b1 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698