diff options
author | varunjain@chromium.org <varunjain@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-04 18:25:39 +0000 |
---|---|---|
committer | varunjain@chromium.org <varunjain@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-04 18:25:39 +0000 |
commit | b54987703b0a5f7b1dcc192ae7e1e124cabe2da9 (patch) | |
tree | e7b23a116e9dad7fcb55c491d9c3a4f80789dcf3 /ui/gfx/skia_util.cc | |
parent | b2c1359a216039e87c6b1b0d322576b30faa7019 (diff) | |
download | chromium_src-b54987703b0a5f7b1dcc192ae7e1e124cabe2da9.zip chromium_src-b54987703b0a5f7b1dcc192ae7e1e124cabe2da9.tar.gz chromium_src-b54987703b0a5f7b1dcc192ae7e1e124cabe2da9.tar.bz2 |
Aura: Adds custom cursors for drag and drop.
BUG=121135
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10316019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135378 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/skia_util.cc')
-rw-r--r-- | ui/gfx/skia_util.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/ui/gfx/skia_util.cc b/ui/gfx/skia_util.cc index bfee378..a459cdd 100644 --- a/ui/gfx/skia_util.cc +++ b/ui/gfx/skia_util.cc @@ -8,6 +8,7 @@ #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkColorPriv.h" #include "third_party/skia/include/core/SkShader.h" +#include "third_party/skia/include/core/SkUnPreMultiply.h" #include "third_party/skia/include/effects/SkGradientShader.h" #include "ui/gfx/rect.h" @@ -101,4 +102,28 @@ string16 RemoveAcceleratorChar(const string16& s, return accelerator_removed; } +void ConvertSkiaToRGBA(const unsigned char* skia, + int pixel_width, + unsigned char* rgba) { + int total_length = pixel_width * 4; + for (int i = 0; i < total_length; i += 4) { + const uint32_t pixel_in = *reinterpret_cast<const uint32_t*>(&skia[i]); + + // Pack the components here. + int alpha = SkGetPackedA32(pixel_in); + if (alpha != 0 && alpha != 255) { + SkColor unmultiplied = SkUnPreMultiply::PMColorToColor(pixel_in); + rgba[i + 0] = SkColorGetR(unmultiplied); + rgba[i + 1] = SkColorGetG(unmultiplied); + rgba[i + 2] = SkColorGetB(unmultiplied); + rgba[i + 3] = alpha; + } else { + rgba[i + 0] = SkGetPackedR32(pixel_in); + rgba[i + 1] = SkGetPackedG32(pixel_in); + rgba[i + 2] = SkGetPackedB32(pixel_in); + rgba[i + 3] = alpha; + } + } +} + } // namespace gfx |