Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1282)

Unified Diff: content/renderer/gpu/renderer_compositor_frame_sink.h

Issue 2773023002: RendererCompositorFrameSink should receive BeginFrame messages (Closed)
Patch Set: Fixed android Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/gpu/renderer_compositor_frame_sink.h
diff --git a/content/renderer/gpu/renderer_compositor_frame_sink.h b/content/renderer/gpu/renderer_compositor_frame_sink.h
index 6a0f9129420e6b5bc6f9ccc2387c7769dd4285d3..07826f098a871dd874bdd736b55437053564ade3 100644
--- a/content/renderer/gpu/renderer_compositor_frame_sink.h
+++ b/content/renderer/gpu/renderer_compositor_frame_sink.h
@@ -32,7 +32,6 @@ class Message;
}
namespace cc {
-class BeginFrameSource;
class CompositorFrame;
class ContextProvider;
}
@@ -44,12 +43,14 @@ class FrameSwapMessageQueue;
// to a fixed thread when BindToClient is called.
class RendererCompositorFrameSink
: NON_EXPORTED_BASE(public cc::CompositorFrameSink),
- NON_EXPORTED_BASE(public base::NonThreadSafe) {
+ NON_EXPORTED_BASE(public base::NonThreadSafe),
+ public cc::ExternalBeginFrameSourceClient {
public:
RendererCompositorFrameSink(
int32_t routing_id,
uint32_t compositor_frame_sink_id,
- std::unique_ptr<cc::BeginFrameSource> begin_frame_source,
+ std::unique_ptr<cc::SyntheticBeginFrameSource>
+ synthetic_begin_frame_source,
scoped_refptr<cc::ContextProvider> context_provider,
scoped_refptr<cc::ContextProvider> worker_context_provider,
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
@@ -58,7 +59,8 @@ class RendererCompositorFrameSink
RendererCompositorFrameSink(
int32_t routing_id,
uint32_t compositor_frame_sink_id,
- std::unique_ptr<cc::BeginFrameSource> begin_frame_source,
+ std::unique_ptr<cc::SyntheticBeginFrameSource>
+ synthetic_begin_frame_source,
scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider,
scoped_refptr<FrameSwapMessageQueue> swap_frame_message_queue);
~RendererCompositorFrameSink() override;
@@ -96,11 +98,17 @@ class RendererCompositorFrameSink
void OnReclaimCompositorResources(uint32_t compositor_frame_sink_id,
bool is_swap_ack,
const cc::ReturnedResourceArray& resources);
+ void OnSetBeginFrameSourcePaused(bool paused);
+ void OnBeginFrame(const cc::BeginFrameArgs& args);
bool Send(IPC::Message* message);
bool ShouldAllocateNewLocalSurfaceId(const cc::CompositorFrame& frame);
void UpdateFrameData(const cc::CompositorFrame& frame);
+ // cc::ExternalBeginFrameSourceClient implementation.
+ void OnNeedsBeginFrames(bool need_begin_frames) override;
+ void OnDidFinishFrame(const cc::BeginFrameAck& ack) override;
+
scoped_refptr<CompositorForwardingMessageFilter>
compositor_frame_sink_filter_;
CompositorForwardingMessageFilter::Handler
@@ -108,7 +116,8 @@ class RendererCompositorFrameSink
scoped_refptr<RendererCompositorFrameSinkProxy> compositor_frame_sink_proxy_;
scoped_refptr<IPC::SyncMessageFilter> message_sender_;
scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue_;
- std::unique_ptr<cc::BeginFrameSource> begin_frame_source_;
+ std::unique_ptr<cc::SyntheticBeginFrameSource> synthetic_begin_frame_source_;
+ std::unique_ptr<cc::ExternalBeginFrameSource> external_begin_frame_source_;
int routing_id_;
cc::LocalSurfaceId local_surface_id_;
« no previous file with comments | « no previous file | content/renderer/gpu/renderer_compositor_frame_sink.cc » ('j') | content/renderer/render_thread_impl.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698