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

Side by Side Diff: content/renderer/gpu/renderer_compositor_frame_sink.h

Issue 2888043004: [cc] Add and plumb CFS::DidNotProduceFrame. (Closed)
Patch Set: remove ExternalBFS::OnDidFinishFrame and related ack tracking. Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_RENDERER_GPU_RENDERER_COMPOSITOR_FRAME_SINK_H_ 5 #ifndef CONTENT_RENDERER_GPU_RENDERER_COMPOSITOR_FRAME_SINK_H_
6 #define CONTENT_RENDERER_GPU_RENDERER_COMPOSITOR_FRAME_SINK_H_ 6 #define CONTENT_RENDERER_GPU_RENDERER_COMPOSITOR_FRAME_SINK_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 std::unique_ptr<cc::SyntheticBeginFrameSource> 63 std::unique_ptr<cc::SyntheticBeginFrameSource>
64 synthetic_begin_frame_source, 64 synthetic_begin_frame_source,
65 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider, 65 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider,
66 scoped_refptr<FrameSwapMessageQueue> swap_frame_message_queue); 66 scoped_refptr<FrameSwapMessageQueue> swap_frame_message_queue);
67 ~RendererCompositorFrameSink() override; 67 ~RendererCompositorFrameSink() override;
68 68
69 // cc::CompositorFrameSink implementation. 69 // cc::CompositorFrameSink implementation.
70 bool BindToClient(cc::CompositorFrameSinkClient* client) override; 70 bool BindToClient(cc::CompositorFrameSinkClient* client) override;
71 void DetachFromClient() override; 71 void DetachFromClient() override;
72 void SubmitCompositorFrame(cc::CompositorFrame frame) override; 72 void SubmitCompositorFrame(cc::CompositorFrame frame) override;
73 void BeginFrameDidNotProduceFrame(const cc::BeginFrameAck& ack) override;
73 74
74 private: 75 private:
75 class RendererCompositorFrameSinkProxy 76 class RendererCompositorFrameSinkProxy
76 : public base::RefCountedThreadSafe<RendererCompositorFrameSinkProxy> { 77 : public base::RefCountedThreadSafe<RendererCompositorFrameSinkProxy> {
77 public: 78 public:
78 explicit RendererCompositorFrameSinkProxy( 79 explicit RendererCompositorFrameSinkProxy(
79 RendererCompositorFrameSink* compositor_frame_sink) 80 RendererCompositorFrameSink* compositor_frame_sink)
80 : compositor_frame_sink_(compositor_frame_sink) {} 81 : compositor_frame_sink_(compositor_frame_sink) {}
81 void ClearCompositorFrameSink() { compositor_frame_sink_ = NULL; } 82 void ClearCompositorFrameSink() { compositor_frame_sink_ = NULL; }
82 void OnMessageReceived(const IPC::Message& message) { 83 void OnMessageReceived(const IPC::Message& message) {
(...skipping 16 matching lines...) Expand all
99 void UpdateFrameData(const cc::CompositorFrame& frame); 100 void UpdateFrameData(const cc::CompositorFrame& frame);
100 101
101 // cc::mojom::MojoCompositorFrameSinkClient implementation. 102 // cc::mojom::MojoCompositorFrameSinkClient implementation.
102 void DidReceiveCompositorFrameAck( 103 void DidReceiveCompositorFrameAck(
103 const cc::ReturnedResourceArray& resources) override; 104 const cc::ReturnedResourceArray& resources) override;
104 void OnBeginFrame(const cc::BeginFrameArgs& args) override; 105 void OnBeginFrame(const cc::BeginFrameArgs& args) override;
105 void ReclaimResources(const cc::ReturnedResourceArray& resources) override; 106 void ReclaimResources(const cc::ReturnedResourceArray& resources) override;
106 107
107 // cc::ExternalBeginFrameSourceClient implementation. 108 // cc::ExternalBeginFrameSourceClient implementation.
108 void OnNeedsBeginFrames(bool need_begin_frames) override; 109 void OnNeedsBeginFrames(bool need_begin_frames) override;
109 void OnDidFinishFrame(const cc::BeginFrameAck& ack) override;
110 110
111 void EstablishMojoConnection(); 111 void EstablishMojoConnection();
112 112
113 scoped_refptr<CompositorForwardingMessageFilter> 113 scoped_refptr<CompositorForwardingMessageFilter>
114 compositor_frame_sink_filter_; 114 compositor_frame_sink_filter_;
115 CompositorForwardingMessageFilter::Handler 115 CompositorForwardingMessageFilter::Handler
116 compositor_frame_sink_filter_handler_; 116 compositor_frame_sink_filter_handler_;
117 scoped_refptr<RendererCompositorFrameSinkProxy> compositor_frame_sink_proxy_; 117 scoped_refptr<RendererCompositorFrameSinkProxy> compositor_frame_sink_proxy_;
118 scoped_refptr<IPC::SyncMessageFilter> message_sender_; 118 scoped_refptr<IPC::SyncMessageFilter> message_sender_;
119 scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue_; 119 scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue_;
(...skipping 20 matching lines...) Expand all
140 140
141 cc::mojom::MojoCompositorFrameSinkPtr sink_; 141 cc::mojom::MojoCompositorFrameSinkPtr sink_;
142 cc::mojom::MojoCompositorFrameSinkPtrInfo sink_ptr_info_; 142 cc::mojom::MojoCompositorFrameSinkPtrInfo sink_ptr_info_;
143 cc::mojom::MojoCompositorFrameSinkClientRequest sink_client_request_; 143 cc::mojom::MojoCompositorFrameSinkClientRequest sink_client_request_;
144 mojo::Binding<cc::mojom::MojoCompositorFrameSinkClient> sink_client_binding_; 144 mojo::Binding<cc::mojom::MojoCompositorFrameSinkClient> sink_client_binding_;
145 }; 145 };
146 146
147 } // namespace content 147 } // namespace content
148 148
149 #endif // CONTENT_RENDERER_GPU_RENDERER_COMPOSITOR_FRAME_SINK_H_ 149 #endif // CONTENT_RENDERER_GPU_RENDERER_COMPOSITOR_FRAME_SINK_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698