| 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 |