diff options
author | 2013-05-31 14:00:10 +0000 | |
---|---|---|
committer | 2013-05-31 14:00:10 +0000 | |
commit | 7def5e1630d47cdbfa4b58a9c86bc060693c4d79 (patch) | |
tree | 548101df35f6b8bc30a73784c26b3f20527b34a4 /tools | |
parent | f865be37868430ab75e3c787afc2869ba18216c3 (diff) |
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@9364 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tools')
-rw-r--r-- | tools/bench_pictures_main.cpp | 2 | ||||
-rw-r--r-- | tools/filtermain.cpp | 3 | ||||
-rw-r--r-- | tools/render_pdfs_main.cpp | 3 | ||||
-rw-r--r-- | tools/render_pictures_main.cpp | 4 | ||||
-rw-r--r-- | tools/skhello.cpp | 3 | ||||
-rw-r--r-- | tools/skimage_main.cpp | 3 |
6 files changed, 18 insertions, 0 deletions
diff --git a/tools/bench_pictures_main.cpp b/tools/bench_pictures_main.cpp index b5126a68bd..46d97de742 100644 --- a/tools/bench_pictures_main.cpp +++ b/tools/bench_pictures_main.cpp @@ -11,6 +11,7 @@ #include "PictureRenderingFlags.h" #include "SkBenchLogger.h" #include "SkCommandLineFlags.h" +#include "SkForceLinking.h" #include "SkGraphics.h" #include "SkImageDecoder.h" #if LAZY_CACHE_STATS @@ -23,6 +24,7 @@ #include "SkStream.h" #include "picture_utils.h" +__SK_FORCE_IMAGE_DECODER_LINKING; SkBenchLogger gLogger; diff --git a/tools/filtermain.cpp b/tools/filtermain.cpp index 47b82d1740..30af3926fe 100644 --- a/tools/filtermain.cpp +++ b/tools/filtermain.cpp @@ -7,6 +7,7 @@ #include "SkDebugCanvas.h" #include "SkDevice.h" +#include "SkForceLinking.h" #include "SkGraphics.h" #include "SkImageDecoder.h" #include "SkImageEncoder.h" @@ -18,6 +19,8 @@ #include "picture_utils.h" #include "path_utils.h" +__SK_FORCE_IMAGE_DECODER_LINKING; + static void usage() { SkDebugf("Usage: filter -i inFile [-o outFile] [--input-dir path] [--output-dir path]\n"); SkDebugf(" [-h|--help]\n\n"); diff --git a/tools/render_pdfs_main.cpp b/tools/render_pdfs_main.cpp index f2ce0a5423..1821548aa3 100644 --- a/tools/render_pdfs_main.cpp +++ b/tools/render_pdfs_main.cpp @@ -7,6 +7,7 @@ #include "SkCanvas.h" #include "SkDevice.h" +#include "SkForceLinking.h" #include "SkGraphics.h" #include "SkImageDecoder.h" #include "SkImageEncoder.h" @@ -17,6 +18,8 @@ #include "PdfRenderer.h" #include "picture_utils.h" +__SK_FORCE_IMAGE_DECODER_LINKING; + #ifdef SK_USE_CDB #include "win_dbghelp.h" #endif diff --git a/tools/render_pictures_main.cpp b/tools/render_pictures_main.cpp index 3aa027f250..f06cfeb148 100644 --- a/tools/render_pictures_main.cpp +++ b/tools/render_pictures_main.cpp @@ -9,6 +9,7 @@ #include "SkBitmap.h" #include "SkDevice.h" #include "SkCommandLineFlags.h" +#include "SkForceLinking.h" #include "SkGraphics.h" #include "SkImageDecoder.h" #include "SkImageEncoder.h" @@ -21,6 +22,9 @@ #include "PictureRenderingFlags.h" #include "picture_utils.h" +// Required to ensure that image decoders get linked correctly. +__SK_FORCE_IMAGE_DECODER_LINKING; + // Flags used by this file, alphabetically: DEFINE_int32(clone, 0, "Clone the picture n times before rendering."); DECLARE_bool(deferImageDecoding); diff --git a/tools/skhello.cpp b/tools/skhello.cpp index 3b8ddee9a6..668c3a993d 100644 --- a/tools/skhello.cpp +++ b/tools/skhello.cpp @@ -57,6 +57,9 @@ int tool_main(int argc, char** argv) { SkAutoTUnref<SkImage> image(surface->newImageSnapshot()); SkAutoDataUnref data(image->encode()); + if (NULL == data.get()) { + return -1; + } SkFILEWStream stream(path.c_str()); return stream.write(data->data(), data->size()); } diff --git a/tools/skimage_main.cpp b/tools/skimage_main.cpp index 98cde5044c..9262958d71 100644 --- a/tools/skimage_main.cpp +++ b/tools/skimage_main.cpp @@ -10,6 +10,7 @@ #include "SkColorPriv.h" #include "SkCommandLineFlags.h" #include "SkData.h" +#include "SkForceLinking.h" #include "SkGraphics.h" #include "SkImageDecoder.h" #include "SkImageEncoder.h" @@ -19,6 +20,8 @@ #include "SkTArray.h" #include "SkTemplates.h" +__SK_FORCE_IMAGE_DECODER_LINKING; + DEFINE_string(createExpectationsPath, "", "Path to write JSON expectations."); DEFINE_string2(readPath, r, "", "Folder(s) and files to decode images. Required."); DEFINE_string(readExpectationsPath, "", "Path to read JSON expectations from."); |