summaryrefslogtreecommitdiffstats
path: root/cc/raster/texture_compressor.h
diff options
context:
space:
mode:
Diffstat (limited to 'cc/raster/texture_compressor.h')
-rw-r--r--cc/raster/texture_compressor.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/cc/raster/texture_compressor.h b/cc/raster/texture_compressor.h
new file mode 100644
index 0000000..95536bc
--- /dev/null
+++ b/cc/raster/texture_compressor.h
@@ -0,0 +1,46 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CC_RASTER_TEXTURE_COMPRESSOR_H_
+#define CC_RASTER_TEXTURE_COMPRESSOR_H_
+
+#include <stdint.h>
+
+#include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
+#include "cc/base/cc_export.h"
+
+namespace cc {
+
+class CC_EXPORT TextureCompressor {
+ public:
+ enum Format {
+ kFormatETC1,
+ };
+
+ enum Quality {
+ kQualityLow,
+ kQualityMedium,
+ kQualityHigh,
+ };
+
+ static scoped_ptr<TextureCompressor> Create(Format format);
+ virtual ~TextureCompressor() {}
+
+ virtual void Compress(const uint8_t* src,
+ uint8_t* dst,
+ int width,
+ int height,
+ Quality quality) = 0;
+
+ protected:
+ TextureCompressor() {}
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TextureCompressor);
+};
+
+} // namespace cc
+
+#endif // CC_RASTER_TEXTURE_COMPRESSOR_H_