chromium/ui/compositor/test/direct_layer_tree_frame_sink.h

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

#ifndef UI_COMPOSITOR_TEST_DIRECT_LAYER_TREE_FRAME_SINK_H_
#define UI_COMPOSITOR_TEST_DIRECT_LAYER_TREE_FRAME_SINK_H_

#include "base/memory/raw_ptr.h"
#include "base/memory/read_only_shared_memory_region.h"
#include "base/task/single_thread_task_runner.h"
#include "base/threading/thread_checker.h"
#include "cc/trees/layer_tree_frame_sink.h"
#include "components/viz/common/frame_sinks/begin_frame_source.h"
#include "components/viz/common/surfaces/parent_local_surface_id_allocator.h"
#include "components/viz/service/display/display_client.h"
#include "components/viz/service/frame_sinks/compositor_frame_sink_support.h"
#include "services/viz/public/mojom/compositing/compositor_frame_sink.mojom.h"

namespace viz {
class Display;
class FrameSinkManagerImpl;
}  // namespace viz

namespace ui {

// This class submits compositor frames to an in-process Display, with the
// client's frame being the root surface of the Display.
class DirectLayerTreeFrameSink : public cc::LayerTreeFrameSink,
                                 public viz::mojom::CompositorFrameSinkClient,
                                 public viz::ExternalBeginFrameSourceClient,
                                 public viz::DisplayClient {};

}  // namespace ui

#endif  // UI_COMPOSITOR_TEST_DIRECT_LAYER_TREE_FRAME_SINK_H_