Home | History | Annotate | Download | only in utils
      1 /*
      2  * Copyright 2014 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #ifndef SkTextureCompressor_DEFINED
      9 #define SkTextureCompressor_DEFINED
     10 
     11 #include "SkImageInfo.h"
     12 
     13 class SkBitmap;
     14 class SkData;
     15 
     16 namespace SkTextureCompressor {
     17     // Various texture compression formats that we support.
     18     enum Format {
     19         // Alpha only format.
     20         kLATC_Format,
     21 
     22         kLast_Format = kLATC_Format
     23     };
     24     static const int kFormatCnt = kLast_Format + 1;
     25 
     26     // Returns an SkData holding a blob of compressed data that corresponds
     27     // to the bitmap. If the bitmap colorType cannot be compressed using the
     28     // associated format, then we return NULL. The caller is responsible for
     29     // calling unref() on the returned data.
     30     SkData* CompressBitmapToFormat(const SkBitmap& bitmap, Format format);
     31 
     32     // Compresses the given src data into dst. The src data is assumed to be
     33     // large enough to hold width*height pixels. The dst data is expected to
     34     // be large enough to hold the compressed data according to the format.
     35     bool CompressBufferToFormat(uint8_t* dst, const uint8_t* src, SkColorType srcColorType,
     36                                 int width, int height, int rowBytes, Format format);
     37 }
     38 
     39 #endif
     40