diff options
author | scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-05-31 14:00:10 +0000 |
---|---|---|
committer | scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-05-31 14:00:10 +0000 |
commit | 10f5cc998b3038c633eb2fc14239590ef9f2cb58 (patch) | |
tree | 8b3d8be9ac83e4cd3fbb52ead466363c829a00eb /image/SkImage_Codec.cpp | |
parent | 150d25eb67aa3bb60824bbfa04699117e4a20127 (diff) | |
download | src-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.cpp | 39 |
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; -} |