10a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger/*
20a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * Copyright 2013 Google Inc.
30a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger *
40a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * Use of this source code is governed by a BSD-style license that can be
50a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * found in the LICENSE file.
60a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger */
70a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger
80a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#include "SkBitmap.h"
90a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#include "SkForceLinking.h"
100a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#include "SkGraphics.h"
110a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#include "SkImageDecoder.h"
120a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger
130a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger__SK_FORCE_IMAGE_DECODER_LINKING;
140a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger
150a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger/**
160a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger   Simple program to test Skia's ability to decode images without
170a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger   errors or debug messages. */
180a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergerint tool_main(int argc, char** argv);
190a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergerint tool_main(int argc, char** argv) {
200a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger    if (argc < 2) {
210a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger        SkDebugf("Usage:\n %s imagefile\n\n", argv[0]);
220a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger        return 3;
230a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger    }
240a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger    SkAutoGraphics ag;  // Enable use of SkRTConfig
250a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger    SkBitmap bitmap;
260a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger    if (!(SkImageDecoder::DecodeFile(argv[1], &bitmap))) {
270a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger        return 2;
280a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger    }
290a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger    if (bitmap.empty()) {
300a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger        return 1;
310a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger    }
320a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger    return 0;
330a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger}
340a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger
350a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#if !defined SK_BUILD_FOR_IOS
360a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergerint main(int argc, char * const argv[]) {
370a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger    return tool_main(argc, (char**) argv);
380a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger}
390a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#endif
40