diff options
author | bungeman <bungeman@google.com> | 2016-03-17 10:38:36 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-17 10:38:36 -0700 |
commit | 003571887de747942478e33d4e2ff40bf3a65a72 (patch) | |
tree | 4fb749c278196cca261c58120099365143675cd0 /gm/filterindiabox.cpp | |
parent | c85ce7ce805135d34b11067c502a5f88506cce44 (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
Diffstat (limited to 'gm/filterindiabox.cpp')
-rw-r--r-- | gm/filterindiabox.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
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; |