/* * Copyright 2012 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkBitmapFactory_DEFINED #define SkBitmapFactory_DEFINED class SkBitmap; class SkData; /** * General purpose factory for decoding bitmaps. * * Currently only provides a way to decode a bitmap or its dimensions from an SkData. Future plans * include options to provide a bitmap which caches the pixel data. */ class SkBitmapFactory { public: enum Constraints { /** * Only decode the bounds of the bitmap. No pixels will be allocated. */ kDecodeBoundsOnly_Constraint, /** * Decode the bounds and pixels of the bitmap. */ kDecodePixels_Constraint, }; /** * Decodes an SkData into an SkBitmap. * @param SkBitmap Already created bitmap to encode into. * @param SkData Encoded SkBitmap data. * @param constraint Specifications for how to do the decoding. * @return True on success. If false, passed in SkBitmap is unmodified. */ static bool DecodeBitmap(SkBitmap*, const SkData*, Constraints constraint = kDecodePixels_Constraint); }; #endif // SkBitmapFactory_DEFINED