This sets up API to release OutputSurface from LTHClient.
[chromium-blink-merge.git] / cc / raster / texture_compressor.h
blob95536bcb40c6b16c470f0f610a701575c05529e3
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CC_RASTER_TEXTURE_COMPRESSOR_H_
6 #define CC_RASTER_TEXTURE_COMPRESSOR_H_
8 #include <stdint.h>
10 #include "base/macros.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "cc/base/cc_export.h"
14 namespace cc {
16 class CC_EXPORT TextureCompressor {
17 public:
18 enum Format {
19 kFormatETC1,
22 enum Quality {
23 kQualityLow,
24 kQualityMedium,
25 kQualityHigh,
28 static scoped_ptr<TextureCompressor> Create(Format format);
29 virtual ~TextureCompressor() {}
31 virtual void Compress(const uint8_t* src,
32 uint8_t* dst,
33 int width,
34 int height,
35 Quality quality) = 0;
37 protected:
38 TextureCompressor() {}
40 private:
41 DISALLOW_COPY_AND_ASSIGN(TextureCompressor);
44 } // namespace cc
46 #endif // CC_RASTER_TEXTURE_COMPRESSOR_H_