aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-20 23:57:38 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-20 23:57:38 +0000
commit1f6aed0b1cf7bcb05b5b8ae588021aa7c70fb176 (patch)
tree344ad3d7dba8838e4885d5deba1d5c693dacb7fc
parent73e4d5710bc5591ae5b3c6e956be2789e3fbef0d (diff)
Move SkImage::encode to SkImage_Codec.cpp.
Chrome depends on SkImage.cpp, but does not include SkImageDecoder, so having SkImage::encode in SkImage.cpp breaks chromium. Temporarily fix the problem by moving the implementation into SkImage_Codec.cpp. The larger fix will be to solve https://code.google.com/p/skia/issues/detail?id=1275 R=reed@google.com, robertphillips@google.com Author: scroggo@google.com Review URL: https://chromiumcodereview.appspot.com/15314004 git-svn-id: http://skia.googlecode.com/svn/trunk@9204 2bbb7eff-a529-9590-31e7-b0007b416f81
-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;
+}