#include "ui/compositor/test/direct_layer_tree_frame_sink.h"
#include <memory>
#include "base/compiler_specific.h"
#include "base/functional/bind.h"
#include "base/task/single_thread_task_runner.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
#include "cc/tiles/image_decode_cache_utils.h"
#include "cc/trees/layer_tree_frame_sink_client.h"
#include "components/viz/common/features.h"
#include "components/viz/common/hit_test/hit_test_region_list.h"
#include "components/viz/common/quads/compositor_frame.h"
#include "components/viz/common/surfaces/frame_sink_id.h"
#include "components/viz/common/surfaces/parent_local_surface_id_allocator.h"
#include "components/viz/service/display/display.h"
#include "components/viz/service/frame_sinks/frame_sink_manager_impl.h"
#include "components/viz/service/surfaces/surface.h"
#include "gpu/ipc/client/client_shared_image_interface.h"
namespace ui {
DirectLayerTreeFrameSink::DirectLayerTreeFrameSink(
const viz::FrameSinkId& frame_sink_id,
viz::FrameSinkManagerImpl* frame_sink_manager,
viz::Display* display,
scoped_refptr<viz::RasterContextProvider> context_provider,
scoped_refptr<cc::RasterContextProviderWrapper>
worker_context_provider_wrapper,
scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner,
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager)
: … { … }
DirectLayerTreeFrameSink::~DirectLayerTreeFrameSink() { … }
bool DirectLayerTreeFrameSink::BindToClient(
cc::LayerTreeFrameSinkClient* client) { … }
void DirectLayerTreeFrameSink::DetachFromClient() { … }
void DirectLayerTreeFrameSink::SubmitCompositorFrame(
viz::CompositorFrame frame,
bool hit_test_data_changed) { … }
void DirectLayerTreeFrameSink::DidNotProduceFrame(
const viz::BeginFrameAck& ack,
cc::FrameSkippedReason reason) { … }
void DirectLayerTreeFrameSink::DidAllocateSharedBitmap(
base::ReadOnlySharedMemoryRegion region,
const viz::SharedBitmapId& id) { … }
void DirectLayerTreeFrameSink::DidDeleteSharedBitmap(
const viz::SharedBitmapId& id) { … }
void DirectLayerTreeFrameSink::DisplayOutputSurfaceLost() { … }
void DirectLayerTreeFrameSink::DisplayWillDrawAndSwap(
bool will_draw_and_swap,
viz::AggregatedRenderPassList* render_passes) { … }
base::TimeDelta
DirectLayerTreeFrameSink::GetPreferredFrameIntervalForFrameSinkId(
const viz::FrameSinkId& id,
viz::mojom::CompositorFrameSinkType* type) { … }
void DirectLayerTreeFrameSink::DidReceiveCompositorFrameAck(
std::vector<viz::ReturnedResource> resources) { … }
void DirectLayerTreeFrameSink::DidReceiveCompositorFrameAckInternal(
std::vector<viz::ReturnedResource> resources) { … }
void DirectLayerTreeFrameSink::OnBeginFrame(
const viz::BeginFrameArgs& args,
const viz::FrameTimingDetailsMap& timing_details,
bool frame_ack,
std::vector<viz::ReturnedResource> resources) { … }
void DirectLayerTreeFrameSink::ReclaimResources(
std::vector<viz::ReturnedResource> resources) { … }
void DirectLayerTreeFrameSink::OnBeginFramePausedChanged(bool paused) { … }
void DirectLayerTreeFrameSink::OnNeedsBeginFrames(bool needs_begin_frames) { … }
}