1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)/*
2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * Copyright 2013 Google Inc.
3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) *
4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be
5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * found in the LICENSE file.
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) */
7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "SkBitmap.h"
9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "SkForceLinking.h"
10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "SkGraphics.h"
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "SkImageDecoder.h"
12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)__SK_FORCE_IMAGE_DECODER_LINKING;
14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)/**
16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)   Simple program to test Skia's ability to decode images without
17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)   errors or debug messages. */
18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)int tool_main(int argc, char** argv);
19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)int tool_main(int argc, char** argv) {
20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    if (argc < 2) {
21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        SkDebugf("Usage:\n %s imagefile\n\n", argv[0]);
22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch        return 3;
23effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    }
24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    SkAutoGraphics ag;  // Enable use of SkRTConfig
25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    SkBitmap bitmap;
26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    if (!(SkImageDecoder::DecodeFile(argv[1], &bitmap))) {
27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        return 2;
2823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    }
2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    if (bitmap.empty()) {
3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        return 1;
31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    }
320de6073388f4e2780db8536178b129cd8f6ab386Torne (Richard Coles)    return 0;
33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#if !defined SK_BUILD_FOR_IOS
36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)int main(int argc, char * const argv[]) {
37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    return tool_main(argc, (char**) argv);
38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)