OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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_ |
OLD | NEW |