// 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_RESOURCES_TEXTURE_COMPRESSOR_H_
#define CC_RESOURCES_TEXTURE_COMPRESSOR_H_

#include <stdint.h>

#include "base/macros.h"
#include "base/memory/scoped_ptr.h"

namespace cc {

class 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_RESOURCES_TEXTURE_COMPRESSOR_H_
