blob: 43df0b0c3d9ba9c4db27e354b6271a0322fe2bbc [file] [log] [blame]
// 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_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,
ResourceFormat resource_format,
const UpdateTileDrawInfoCallback& update_tile_draw_info) = 0;
protected:
Rasterizer() {}
private:
DISALLOW_COPY_AND_ASSIGN(Rasterizer);
};
} // namespace cc
#endif // CC_RESOURCES_RASTERIZER_H_