aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-31 14:00:10 +0000
committerGravatar scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-31 14:00:10 +0000
commit7def5e1630d47cdbfa4b58a9c86bc060693c4d79 (patch)
tree548101df35f6b8bc30a73784c26b3f20527b34a4 /tools
parentf865be37868430ab75e3c787afc2869ba18216c3 (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.cpp2
-rw-r--r--tools/filtermain.cpp3
-rw-r--r--tools/render_pdfs_main.cpp3
-rw-r--r--tools/render_pictures_main.cpp4
-rw-r--r--tools/skhello.cpp3
-rw-r--r--tools/skimage_main.cpp3
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.");