aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar bungeman <bungeman@google.com>2016-03-17 10:38:36 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-03-17 10:38:36 -0700
commit003571887de747942478e33d4e2ff40bf3a65a72 (patch)
tree4fb749c278196cca261c58120099365143675cd0
parentc85ce7ce805135d34b11067c502a5f88506cce44 (diff)
Revert of Remove uses of SkImageDecoder from gms (patchset #2 id:20001 of https://codereview.chromium.org/1791583002/ )
Reason for revert: Suspected of causing assertion failures in unrelated tests on Windows. Original issue's description: > Remove uses of SkImageDecoder from gms > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1791583002 > > Committed: https://skia.googlesource.com/skia/+/d427266a58af7e6ea6c12c9cd56ade3e179a0c04 TBR=scroggo@google.com,reed@google.com,msarett@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1806383002
-rw-r--r--gm/astcbitmap.cpp2
-rw-r--r--gm/avoidxfermode.cpp13
-rw-r--r--gm/cmykjpeg.cpp70
-rw-r--r--gm/copyTo4444.cpp4
-rw-r--r--gm/downsamplebitmap.cpp21
-rw-r--r--gm/etc1bitmap.cpp2
-rw-r--r--gm/factory.cpp1
-rw-r--r--gm/filterbitmap.cpp32
-rw-r--r--gm/filterindiabox.cpp21
-rw-r--r--gm/pixelxorxfermode.cpp13
-rw-r--r--gm/showmiplevels.cpp1
-rw-r--r--gm/tiledscaledbitmap.cpp1
12 files changed, 155 insertions, 26 deletions
diff --git a/gm/astcbitmap.cpp b/gm/astcbitmap.cpp
index a7d72bfbf4..211e8daff0 100644
--- a/gm/astcbitmap.cpp
+++ b/gm/astcbitmap.cpp
@@ -10,8 +10,8 @@
#include "Resources.h"
#include "SkCanvas.h"
#include "SkData.h"
-#include "SkImage.h"
#include "SkImageGenerator.h"
+#include "SkImageDecoder.h"
#include "SkOSFile.h"
#include "SkTextureCompressor.h"
diff --git a/gm/avoidxfermode.cpp b/gm/avoidxfermode.cpp
index d224b4e2d0..a015b6bbe7 100644
--- a/gm/avoidxfermode.cpp
+++ b/gm/avoidxfermode.cpp
@@ -8,6 +8,7 @@
#include "gm.h"
#include "Resources.h"
+#include "SkImageDecoder.h"
#include "SkAvoidXfermode.h"
#include "SkStream.h"
@@ -23,7 +24,17 @@ protected:
SkISize onISize() override { return SkISize::Make(128, 128); }
void onOnceBeforeDraw() override {
- if (!GetResourceAsBitmap("color_wheel.png", &fBM)) {
+ SkImageDecoder* codec = nullptr;
+ SkString resourcePath = GetResourcePath("color_wheel.png");
+ SkFILEStream stream(resourcePath.c_str());
+ if (stream.isValid()) {
+ codec = SkImageDecoder::Factory(&stream);
+ }
+ if (codec) {
+ stream.rewind();
+ codec->decode(&stream, &fBM, kN32_SkColorType, SkImageDecoder::kDecodePixels_Mode);
+ delete codec;
+ } else {
fBM.allocN32Pixels(1, 1);
fBM.eraseARGB(255, 255, 0 , 0); // red == bad
}
diff --git a/gm/cmykjpeg.cpp b/gm/cmykjpeg.cpp
new file mode 100644
index 0000000000..d4fb2faa1c
--- /dev/null
+++ b/gm/cmykjpeg.cpp
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "gm.h"
+
+#include "Resources.h"
+#include "SkCanvas.h"
+#include "SkImageDecoder.h"
+#include "SkStream.h"
+
+namespace skiagm {
+
+/** Draw a CMYK encoded jpeg - libjpeg doesn't support CMYK->RGB
+ conversion so this tests Skia's internal processing
+*/
+class CMYKJpegGM : public GM {
+public:
+ CMYKJpegGM() {}
+
+protected:
+ void onOnceBeforeDraw() override {
+ // parameters to the "decode" call
+ bool dither = false;
+
+ SkString jpgFilename = GetResourcePath("CMYK.jpg");
+ SkFILEStream stream(jpgFilename.c_str());
+ if (!stream.isValid()) {
+ SkDebugf("Could not find CMYK.jpg, please set --resourcePath correctly.\n");
+ return;
+ }
+
+ SkImageDecoder* codec = SkImageDecoder::Factory(&stream);
+ if (codec) {
+ stream.rewind();
+ codec->setDitherImage(dither);
+ codec->decode(&stream, &fBitmap, kN32_SkColorType, SkImageDecoder::kDecodePixels_Mode);
+ delete codec;
+ }
+ }
+
+ virtual SkString onShortName() override {
+ return SkString("cmykjpeg");
+ }
+
+ virtual SkISize onISize() override {
+ return SkISize::Make(640, 480);
+ }
+
+ virtual void onDraw(SkCanvas* canvas) override {
+
+ canvas->translate(20*SK_Scalar1, 20*SK_Scalar1);
+ canvas->drawBitmap(fBitmap, 0, 0);
+ }
+
+private:
+ SkBitmap fBitmap;
+
+ typedef GM INHERITED;
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
+static GM* MyFactory(void*) { return new CMYKJpegGM; }
+static GMRegistry reg(MyFactory);
+
+}
diff --git a/gm/copyTo4444.cpp b/gm/copyTo4444.cpp
index f790d7fcc1..635cc7b834 100644
--- a/gm/copyTo4444.cpp
+++ b/gm/copyTo4444.cpp
@@ -32,7 +32,9 @@ protected:
virtual void onDraw(SkCanvas* canvas) {
SkBitmap bm, bm4444;
- if (!GetResourceAsBitmap("mandrill_512.png", &bm)) {
+ SkString pngFilename = GetResourcePath("mandrill_512.png");
+ if (!SkImageDecoder::DecodeFile(pngFilename.c_str(), &bm, kN32_SkColorType,
+ SkImageDecoder::kDecodePixels_Mode)) {
SkDebugf("Could not decode the file. Did you forget to set the "
"resourcePath?\n");
return;
diff --git a/gm/downsamplebitmap.cpp b/gm/downsamplebitmap.cpp
index a99bae0cd9..771eb6ab53 100644
--- a/gm/downsamplebitmap.cpp
+++ b/gm/downsamplebitmap.cpp
@@ -10,6 +10,7 @@
#include "Resources.h"
#include "SkGradientShader.h"
#include "SkTypeface.h"
+#include "SkImageDecoder.h"
#include "SkStream.h"
#include "SkPaint.h"
@@ -170,11 +171,21 @@ class DownsampleBitmapImageGM: public DownsampleBitmapGM {
int fSize;
void make_bitmap() override {
- if (!GetResourceAsBitmap(fFilename.c_str(), &fBM)) {
- fBM.allocN32Pixels(1, 1);
- fBM.eraseARGB(255, 255, 0 , 0); // red == bad
- }
- fSize = fBM.height();
+ SkImageDecoder* codec = nullptr;
+ SkString resourcePath = GetResourcePath(fFilename.c_str());
+ SkFILEStream stream(resourcePath.c_str());
+ if (stream.isValid()) {
+ codec = SkImageDecoder::Factory(&stream);
+ }
+ if (codec) {
+ stream.rewind();
+ codec->decode(&stream, &fBM, kN32_SkColorType, SkImageDecoder::kDecodePixels_Mode);
+ delete codec;
+ } else {
+ fBM.allocN32Pixels(1, 1);
+ *(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad
+ }
+ fSize = fBM.height();
}
private:
typedef DownsampleBitmapGM INHERITED;
diff --git a/gm/etc1bitmap.cpp b/gm/etc1bitmap.cpp
index 0e639fe062..e2f6c2dc41 100644
--- a/gm/etc1bitmap.cpp
+++ b/gm/etc1bitmap.cpp
@@ -10,8 +10,8 @@
#include "Resources.h"
#include "SkCanvas.h"
#include "SkData.h"
-#include "SkImage.h"
#include "SkImageGenerator.h"
+#include "SkImageDecoder.h"
#include "SkOSFile.h"
#include "SkTemplates.h"
diff --git a/gm/factory.cpp b/gm/factory.cpp
index 831cff0b9f..4d36574daa 100644
--- a/gm/factory.cpp
+++ b/gm/factory.cpp
@@ -12,6 +12,7 @@
#include "SkData.h"
#include "SkDiscardableMemoryPool.h"
#include "SkDiscardablePixelRef.h"
+#include "SkImageDecoder.h"
#include "SkImageGeneratorPriv.h"
#include "SkOSFile.h"
#include "SkStream.h"
diff --git a/gm/filterbitmap.cpp b/gm/filterbitmap.cpp
index 51a8064d80..5c63910a78 100644
--- a/gm/filterbitmap.cpp
+++ b/gm/filterbitmap.cpp
@@ -9,6 +9,7 @@
#include "Resources.h"
#include "SkGradientShader.h"
+#include "SkImageDecoder.h"
#include "SkStream.h"
#include "SkTypeface.h"
@@ -195,17 +196,26 @@ protected:
}
void makeBitmap() override {
- if (!GetResourceAsBitmap(fFilename.c_str(), &fBM)) {
- fBM.allocN32Pixels(1, 1);
- fBM.eraseARGB(255, 255, 0 , 0); // red == bad
- }
- fSize = fBM.height();
-
- if (fConvertToG8) {
- SkBitmap tmp;
- fBM.copyTo(&tmp, kGray_8_SkColorType);
- fBM = tmp;
- }
+ SkImageDecoder* codec = nullptr;
+ SkString resourcePath = GetResourcePath(fFilename.c_str());
+ SkFILEStream stream(resourcePath.c_str());
+ if (stream.isValid()) {
+ codec = SkImageDecoder::Factory(&stream);
+ }
+ if (codec) {
+ stream.rewind();
+ codec->decode(&stream, &fBM, kN32_SkColorType, SkImageDecoder::kDecodePixels_Mode);
+ delete codec;
+ } else {
+ fBM.allocN32Pixels(1, 1);
+ *(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad
+ }
+ fSize = fBM.height();
+ if (fConvertToG8) {
+ SkBitmap tmp;
+ fBM.copyTo(&tmp, kGray_8_SkColorType);
+ fBM = tmp;
+ }
}
private:
const bool fConvertToG8;
diff --git a/gm/filterindiabox.cpp b/gm/filterindiabox.cpp
index 569a694968..c5d7166423 100644
--- a/gm/filterindiabox.cpp
+++ b/gm/filterindiabox.cpp
@@ -11,6 +11,7 @@
#include "SkBitmapProcState.h"
#include "SkBitmapScaler.h"
#include "SkGradientShader.h"
+#include "SkImageDecoder.h"
#include "SkImageEncoder.h"
#include "SkStream.h"
#include "SkTypeface.h"
@@ -98,11 +99,21 @@ protected:
}
void makeBitmap() {
- if (!GetResourceAsBitmap(fFilename.c_str(), &fBM)) {
- fBM.allocN32Pixels(1, 1);
- fBM.eraseARGB(255, 255, 0 , 0); // red == bad
- }
- fSize = fBM.height();
+ SkImageDecoder* codec = nullptr;
+ SkString resourcePath = GetResourcePath(fFilename.c_str());
+ SkFILEStream stream(resourcePath.c_str());
+ if (stream.isValid()) {
+ codec = SkImageDecoder::Factory(&stream);
+ }
+ if (codec) {
+ stream.rewind();
+ codec->decode(&stream, &fBM, kN32_SkColorType, SkImageDecoder::kDecodePixels_Mode);
+ delete codec;
+ } else {
+ fBM.allocN32Pixels(1, 1);
+ *(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad
+ }
+ fSize = fBM.height();
}
private:
typedef skiagm::GM INHERITED;
diff --git a/gm/pixelxorxfermode.cpp b/gm/pixelxorxfermode.cpp
index daccca8c41..35926a81c6 100644
--- a/gm/pixelxorxfermode.cpp
+++ b/gm/pixelxorxfermode.cpp
@@ -8,6 +8,7 @@
#include "gm.h"
#include "Resources.h"
+#include "SkImageDecoder.h"
#include "SkPixelXorXfermode.h"
#include "SkStream.h"
@@ -23,7 +24,17 @@ protected:
SkISize onISize() override { return SkISize::Make(512, 512); }
void onOnceBeforeDraw() override {
- if (!GetResourceAsBitmap("mandrill_512.png", &fBM)) {
+ SkImageDecoder* codec = nullptr;
+ SkString resourcePath = GetResourcePath("mandrill_512.png");
+ SkFILEStream stream(resourcePath.c_str());
+ if (stream.isValid()) {
+ codec = SkImageDecoder::Factory(&stream);
+ }
+ if (codec) {
+ stream.rewind();
+ codec->decode(&stream, &fBM, kN32_SkColorType, SkImageDecoder::kDecodePixels_Mode);
+ delete codec;
+ } else {
fBM.allocN32Pixels(1, 1);
fBM.eraseARGB(255, 255, 0 , 0); // red == bad
}
diff --git a/gm/showmiplevels.cpp b/gm/showmiplevels.cpp
index fd1254f9bc..d3462b7803 100644
--- a/gm/showmiplevels.cpp
+++ b/gm/showmiplevels.cpp
@@ -11,6 +11,7 @@
#include "SkBitmapScaler.h"
#include "SkGradientShader.h"
#include "SkTypeface.h"
+#include "SkImageDecoder.h"
#include "SkStream.h"
#include "SkPaint.h"
#include "SkMipMap.h"
diff --git a/gm/tiledscaledbitmap.cpp b/gm/tiledscaledbitmap.cpp
index 5511b8b3d9..d74d40bf49 100644
--- a/gm/tiledscaledbitmap.cpp
+++ b/gm/tiledscaledbitmap.cpp
@@ -9,6 +9,7 @@
#include "Resources.h"
#include "SkBitmap.h"
+#include "SkImageDecoder.h"
#include "SkPaint.h"
#include "SkShader.h"
#include "SkStream.h"