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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 std::unique_ptr<cc::SyntheticBeginFrameSource> | 64 std::unique_ptr<cc::SyntheticBeginFrameSource> |
65 synthetic_begin_frame_source, | 65 synthetic_begin_frame_source, |
66 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider, | 66 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider, |
67 scoped_refptr<FrameSwapMessageQueue> swap_frame_message_queue); | 67 scoped_refptr<FrameSwapMessageQueue> swap_frame_message_queue); |
68 ~RendererCompositorFrameSink() override; | 68 ~RendererCompositorFrameSink() override; |
69 | 69 |
70 // cc::CompositorFrameSink implementation. | 70 // cc::CompositorFrameSink implementation. |
71 bool BindToClient(cc::CompositorFrameSinkClient* client) override; | 71 bool BindToClient(cc::CompositorFrameSinkClient* client) override; |
72 void DetachFromClient() override; | 72 void DetachFromClient() override; |
73 void SubmitCompositorFrame(cc::CompositorFrame frame) override; | 73 void SubmitCompositorFrame(cc::CompositorFrame frame) override; |
| 74 void DidNotProduceFrame(const cc::BeginFrameAck& ack) override; |
74 | 75 |
75 private: | 76 private: |
76 class RendererCompositorFrameSinkProxy | 77 class RendererCompositorFrameSinkProxy |
77 : public base::RefCountedThreadSafe<RendererCompositorFrameSinkProxy> { | 78 : public base::RefCountedThreadSafe<RendererCompositorFrameSinkProxy> { |
78 public: | 79 public: |
79 explicit RendererCompositorFrameSinkProxy( | 80 explicit RendererCompositorFrameSinkProxy( |
80 RendererCompositorFrameSink* compositor_frame_sink) | 81 RendererCompositorFrameSink* compositor_frame_sink) |
81 : compositor_frame_sink_(compositor_frame_sink) {} | 82 : compositor_frame_sink_(compositor_frame_sink) {} |
82 void ClearCompositorFrameSink() { compositor_frame_sink_ = NULL; } | 83 void ClearCompositorFrameSink() { compositor_frame_sink_ = NULL; } |
83 void OnMessageReceived(const IPC::Message& message) { | 84 void OnMessageReceived(const IPC::Message& message) { |
(...skipping 13 matching lines...) Expand all Loading... |
97 void OnBeginFrameIPC(const cc::BeginFrameArgs& args); | 98 void OnBeginFrameIPC(const cc::BeginFrameArgs& args); |
98 | 99 |
99 // cc::mojom::MojoCompositorFrameSinkClient implementation. | 100 // cc::mojom::MojoCompositorFrameSinkClient implementation. |
100 void DidReceiveCompositorFrameAck( | 101 void DidReceiveCompositorFrameAck( |
101 const cc::ReturnedResourceArray& resources) override; | 102 const cc::ReturnedResourceArray& resources) override; |
102 void OnBeginFrame(const cc::BeginFrameArgs& args) override; | 103 void OnBeginFrame(const cc::BeginFrameArgs& args) override; |
103 void ReclaimResources(const cc::ReturnedResourceArray& resources) override; | 104 void ReclaimResources(const cc::ReturnedResourceArray& resources) override; |
104 | 105 |
105 // cc::ExternalBeginFrameSourceClient implementation. | 106 // cc::ExternalBeginFrameSourceClient implementation. |
106 void OnNeedsBeginFrames(bool need_begin_frames) override; | 107 void OnNeedsBeginFrames(bool need_begin_frames) override; |
107 void OnDidFinishFrame(const cc::BeginFrameAck& ack) override; | |
108 | 108 |
109 void EstablishMojoConnection(); | 109 void EstablishMojoConnection(); |
110 | 110 |
111 scoped_refptr<CompositorForwardingMessageFilter> | 111 scoped_refptr<CompositorForwardingMessageFilter> |
112 compositor_frame_sink_filter_; | 112 compositor_frame_sink_filter_; |
113 CompositorForwardingMessageFilter::Handler | 113 CompositorForwardingMessageFilter::Handler |
114 compositor_frame_sink_filter_handler_; | 114 compositor_frame_sink_filter_handler_; |
115 scoped_refptr<RendererCompositorFrameSinkProxy> compositor_frame_sink_proxy_; | 115 scoped_refptr<RendererCompositorFrameSinkProxy> compositor_frame_sink_proxy_; |
116 scoped_refptr<IPC::SyncMessageFilter> message_sender_; | 116 scoped_refptr<IPC::SyncMessageFilter> message_sender_; |
117 scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue_; | 117 scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue_; |
118 std::unique_ptr<cc::SyntheticBeginFrameSource> synthetic_begin_frame_source_; | 118 std::unique_ptr<cc::SyntheticBeginFrameSource> synthetic_begin_frame_source_; |
119 std::unique_ptr<cc::ExternalBeginFrameSource> external_begin_frame_source_; | 119 std::unique_ptr<cc::ExternalBeginFrameSource> external_begin_frame_source_; |
120 int routing_id_; | 120 int routing_id_; |
121 | 121 |
122 cc::LocalSurfaceId local_surface_id_; | 122 cc::LocalSurfaceId local_surface_id_; |
123 cc::LocalSurfaceIdAllocator id_allocator_; | 123 cc::LocalSurfaceIdAllocator id_allocator_; |
124 RenderWidgetSurfaceProperties current_surface_properties_; | 124 RenderWidgetSurfaceProperties current_surface_properties_; |
125 | 125 |
126 base::ThreadChecker thread_checker_; | 126 base::ThreadChecker thread_checker_; |
127 | 127 |
128 cc::mojom::MojoCompositorFrameSinkPtr sink_; | 128 cc::mojom::MojoCompositorFrameSinkPtr sink_; |
129 cc::mojom::MojoCompositorFrameSinkPtrInfo sink_ptr_info_; | 129 cc::mojom::MojoCompositorFrameSinkPtrInfo sink_ptr_info_; |
130 cc::mojom::MojoCompositorFrameSinkClientRequest sink_client_request_; | 130 cc::mojom::MojoCompositorFrameSinkClientRequest sink_client_request_; |
131 mojo::Binding<cc::mojom::MojoCompositorFrameSinkClient> sink_client_binding_; | 131 mojo::Binding<cc::mojom::MojoCompositorFrameSinkClient> sink_client_binding_; |
132 }; | 132 }; |
133 | 133 |
134 } // namespace content | 134 } // namespace content |
135 | 135 |
136 #endif // CONTENT_RENDERER_GPU_RENDERER_COMPOSITOR_FRAME_SINK_H_ | 136 #endif // CONTENT_RENDERER_GPU_RENDERER_COMPOSITOR_FRAME_SINK_H_ |
OLD | NEW |