// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CC_TREES_LAYER_CONTEXT_CLIENT_H_
#define CC_TREES_LAYER_CONTEXT_CLIENT_H_

#include "cc/cc_export.h"
#include "components/viz/common/frame_sinks/begin_frame_args.h"

namespace cc {

// Interface used by LayerContext to push requests to its corresponding
// client-side LayerTreeHost.
class CC_EXPORT LayerContextClient {
 public:
  virtual ~LayerContextClient() = default;

  // Indicates that the compositor will produce a new display frame soon and
  // that the client should commit a new layer tree ASAP. `args` correspond to
  // the impending display frame that the compositor wants to produce.
  virtual void OnRequestCommitForFrame(const viz::BeginFrameArgs& args) = 0;
};

}  // namespace cc

#endif  // CC_TREES_LAYER_CONTEXT_CLIENT_H_