summaryrefslogtreecommitdiff
path: root/image/SkImage_Codec.cpp
diff options
context:
space:
mode:
authorscroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-31 14:00:10 +0000
committerscroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-31 14:00:10 +0000
commit10f5cc998b3038c633eb2fc14239590ef9f2cb58 (patch)
tree8b3d8be9ac83e4cd3fbb52ead466363c829a00eb /image/SkImage_Codec.cpp
parent150d25eb67aa3bb60824bbfa04699117e4a20127 (diff)
downloadsrc-10f5cc998b3038c633eb2fc14239590ef9f2cb58.tar.gz
Separate core and images project.
SkImage calls functions on SkImageDecoder and SkImageEncoder. This is desired behavior, and it is also desired to include SkImage as a part of core. In order to keep core from depending on images, update SkImageDecoder_empty.cpp to implement all of SkImageDecoder and SkImageEncoder. This file will be built by chrome (in https://codereview.chromium.org/15960015). Move force_linking from SkImageDecoder.cpp to its own file. It must be called to force linking with the image decoders if desired. Call the function in tools that need it: sk_image render_pictures render_pdfs sk_hello filter bench_pictures debugger SkImageDecoder: Derive from SkNoncopyable, instead of duplicating its hiding of constructors. skhello: Return rather than trying to write a null SkData to the stream. Revert "Hamfistedly removed core dependence on images" (commit 0f05f682a90bc125323677abf3476e1027d174f5) and "Move SkImage::encode to SkImage_Codec.cpp." (commit 83e47a954d0bf65439f3d9c0c93213063dd70da3.) These two commits were temporary fixes that this change cleans up. SkSnapshot.cpp: Check for a NULL encoder returned by SkImageEncoder::Create. BUG=https://code.google.com/p/skia/issues/detail?id=1275 R=djsollen@google.com, robertphillips@google.com Review URL: https://codereview.chromium.org/15806010 git-svn-id: http://skia.googlecode.com/svn/trunk/src@9364 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'image/SkImage_Codec.cpp')
-rw-r--r--image/SkImage_Codec.cpp39
1 files changed, 1 insertions, 38 deletions
diff --git a/image/SkImage_Codec.cpp b/image/SkImage_Codec.cpp
index 77ce0377..61661de3 100644
--- a/image/SkImage_Codec.cpp
+++ b/image/SkImage_Codec.cpp
@@ -5,11 +5,11 @@
* found in the LICENSE file.
*/
+#include "SkImageDecoder.h"
#include "SkImage_Base.h"
#include "SkBitmap.h"
#include "SkCanvas.h"
#include "SkData.h"
-#include "../images/SkImageDecoder.h"
class SkImage_Codec : public SkImage_Base {
public:
@@ -64,40 +64,3 @@ 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;
-}