blob: 7dda66b0880205f7af42812a30de2fbd5bee20bc [file] [log] [blame]
krajcevskiae614402014-06-10 14:52:28 -07001/*
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
krajcevskieecc35f2014-06-20 11:43:00 -070011#include "SkImageInfo.h"
12
krajcevskiae614402014-06-10 14:52:28 -070013class SkBitmap;
14class SkData;
15
16namespace 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);
krajcevskieecc35f2014-06-20 11:43:00 -070031
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);
krajcevskiae614402014-06-10 14:52:28 -070037}
38
39#endif