blob: d198b32ad7b7636536c88da708f53a3cc645625c [file] [log] [blame]
// Copyright 2016 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_BLIMP_ENGINE_PICTURE_CACHE_H_
#define CC_BLIMP_ENGINE_PICTURE_CACHE_H_
#include <vector>
class SkPicture;
namespace cc {
struct PictureData;
// EnginePictureCache provides functionaltiy for marking when SkPictures are in
// use an when they stop being in use. Based on this, a PictureCacheUpdate can
// be retrieved that includes all the new items since last time it was called.
// This PictureCacheUpdate is then supposed to be sent to the client.
class EnginePictureCache {
public:
virtual ~EnginePictureCache() {}
// MarkUsed must be called when an SkPicture needs to available on the client.
virtual void MarkUsed(const SkPicture* picture) = 0;
// Called when a PictureCacheUpdate is going to be sent to the client. This
// must contain all the new SkPictures that are in use since last call.
virtual std::vector<PictureData> CalculateCacheUpdateAndFlush() = 0;
};
} // namespace cc
#endif // CC_BLIMP_ENGINE_PICTURE_CACHE_H_