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)