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