aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gyp/tools.gyp1
-rw-r--r--src/image/SkImage.cpp29
-rw-r--r--src/image/SkImage_Codec.cpp37
3 files changed, 38 insertions, 29 deletions
diff --git a/gyp/tools.gyp b/gyp/tools.gyp
index aa27b45f62..1fe564e464 100644
--- a/gyp/tools.gyp
+++ b/gyp/tools.gyp
@@ -65,6 +65,7 @@
'type': 'executable',
'sources': [
'../tools/skhello.cpp',
+ '../src/image/SkImage_Codec.cpp',
],
'dependencies': [
'skia_base_libs.gyp:skia_base_libs',
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp
index 13af631b2a..bb4a336ffd 100644
--- a/src/image/SkImage.cpp
+++ b/src/image/SkImage.cpp
@@ -9,7 +9,6 @@
#include "SkImagePriv.h"
#include "SkBitmap.h"
#include "SkCanvas.h"
-#include "../images/SkImageEncoder.h"
SK_DEFINE_INST_COUNT(SkImage)
@@ -17,10 +16,6 @@ static SkImage_Base* asIB(SkImage* image) {
return static_cast<SkImage_Base*>(image);
}
-static const SkImage_Base* asIB(const SkImage* image) {
- return static_cast<const SkImage_Base*>(image);
-}
-
uint32_t SkImage::NextUniqueID() {
static int32_t gUniqueID;
@@ -41,28 +36,4 @@ GrTexture* SkImage::getTexture() {
return asIB(this)->onGetTexture();
}
-static const struct {
- SkImageEncoder::Type fIE;
- SkImage::EncodeType fET;
-} gTable[] = {
- { SkImageEncoder::kBMP_Type, SkImage::kBMP_EncodeType },
- { SkImageEncoder::kGIF_Type, SkImage::kGIF_EncodeType },
- { SkImageEncoder::kICO_Type, SkImage::kICO_EncodeType },
- { SkImageEncoder::kJPEG_Type, SkImage::kJPEG_EncodeType },
- { SkImageEncoder::kPNG_Type, SkImage::kPNG_EncodeType },
- { SkImageEncoder::kWBMP_Type, SkImage::kWBMP_EncodeType },
- { SkImageEncoder::kWEBP_Type, SkImage::kWEBP_EncodeType },
-};
-SkData* SkImage::encode(EncodeType et, int quality) const {
- for (size_t i = 0; i < SK_ARRAY_COUNT(gTable); ++i) {
- if (gTable[i].fET == et) {
- SkBitmap bm;
- if (asIB(this)->getROPixels(&bm)) {
- return SkImageEncoder::EncodeData(bm, gTable[i].fIE, quality);
- }
- break;
- }
- }
- return NULL;
-}
diff --git a/src/image/SkImage_Codec.cpp b/src/image/SkImage_Codec.cpp
index 9d81dc943a..77ce03779a 100644
--- a/src/image/SkImage_Codec.cpp
+++ b/src/image/SkImage_Codec.cpp
@@ -64,3 +64,40 @@ SkImage* SkImage::NewEncodedData(SkData* data) {
return SkNEW_ARGS(SkImage_Codec, (data, bitmap.width(), bitmap.height()));
}
+
+///////////////////////////////////////////////////////////////////////////////
+
+// FIXME: Temporarily move this here so chromium can still build until we truly
+// fix the core/images dependency issue (https://code.google.com/p/skia/issues/detail?id=1275)
+#include "SkImage.h"
+#include "../images/SkImageEncoder.h"
+
+static const SkImage_Base* asIB(const SkImage* image) {
+ return static_cast<const SkImage_Base*>(image);
+}
+
+static const struct {
+ SkImageEncoder::Type fIE;
+ SkImage::EncodeType fET;
+} gTable[] = {
+ { SkImageEncoder::kBMP_Type, SkImage::kBMP_EncodeType },
+ { SkImageEncoder::kGIF_Type, SkImage::kGIF_EncodeType },
+ { SkImageEncoder::kICO_Type, SkImage::kICO_EncodeType },
+ { SkImageEncoder::kJPEG_Type, SkImage::kJPEG_EncodeType },
+ { SkImageEncoder::kPNG_Type, SkImage::kPNG_EncodeType },
+ { SkImageEncoder::kWBMP_Type, SkImage::kWBMP_EncodeType },
+ { SkImageEncoder::kWEBP_Type, SkImage::kWEBP_EncodeType },
+};
+
+SkData* SkImage::encode(EncodeType et, int quality) const {
+ for (size_t i = 0; i < SK_ARRAY_COUNT(gTable); ++i) {
+ if (gTable[i].fET == et) {
+ SkBitmap bm;
+ if (asIB(this)->getROPixels(&bm)) {
+ return SkImageEncoder::EncodeData(bm, gTable[i].fIE, quality);
+ }
+ break;
+ }
+ }
+ return NULL;
+}