// 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_RASTERIZER_H_
#define CC_RESOURCES_RASTERIZER_H_

#include <vector>

#include "cc/base/cc_export.h"
#include "cc/resources/resource_pool.h"
#include "cc/resources/tile.h"

namespace cc {
class TileManager;

enum class PrepareTilesMode {
  RASTERIZE_PRIORITIZED_TILES,
  PREPARE_PRIORITIZED_TILES,
  PREPARE_NONE
};

class CC_EXPORT Rasterizer {
 public:
  using TileVector = std::vector<Tile*>;
  using UpdateTileDrawInfoCallback =
      base::Callback<void(Tile*,
                          scoped_ptr<ScopedResource>,
                          const RasterSource::SolidColorAnalysis&)>;

  virtual ~Rasterizer() {}
  virtual PrepareTilesMode GetPrepareTilesMode() = 0;
  virtual void RasterizeTiles(
      const TileVector& tiles,
      ResourcePool* resource_pool,
      const UpdateTileDrawInfoCallback& update_tile_draw_info) = 0;

 protected:
  Rasterizer() {}

 private:
  DISALLOW_COPY_AND_ASSIGN(Rasterizer);
};

}  // namespace cc

#endif  // CC_RESOURCES_RASTERIZER_H_
