blob: 3f0bc4eaf11d811077b846da8dbc1e1e2dfc7e9c [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 CompositorMutableStateProvider_h
#define CompositorMutableStateProvider_h
#include "platform/PlatformExport.h"
#include <cstdint>
#include <memory>
namespace cc {
class LayerTreeImpl;
} // namespace cc
namespace blink {
class CompositorMutableState;
struct CompositorMutations;
// This class is a window onto compositor-owned state. It vends out wrappers
// around per-element bits of this state.
class PLATFORM_EXPORT CompositorMutableStateProvider {
public:
CompositorMutableStateProvider(cc::LayerTreeImpl*, CompositorMutations*);
~CompositorMutableStateProvider();
std::unique_ptr<CompositorMutableState> getMutableStateFor(uint64_t elementId);
private:
cc::LayerTreeImpl* m_tree;
CompositorMutations* m_mutations;
};
} // namespace blink
#endif // CompositorMutableStateProvider_h