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

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

Issue 2921713002: Reland "Send FrameSwapMessageQueue's messages in QueueMessageSwapPromise" with fixes (Closed)
Patch Set: Don't pass to RCFS Created 3 years, 6 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 23 matching lines...) Expand all
34 namespace IPC { 34 namespace IPC {
35 class Message; 35 class Message;
36 } 36 }
37 37
38 namespace cc { 38 namespace cc {
39 class CompositorFrame; 39 class CompositorFrame;
40 class ContextProvider; 40 class ContextProvider;
41 } 41 }
42 42
43 namespace content { 43 namespace content {
44 class FrameSwapMessageQueue;
45 44
46 // This class can be created only on the main thread, but then becomes pinned 45 // This class can be created only on the main thread, but then becomes pinned
47 // to a fixed thread when BindToClient is called. 46 // to a fixed thread when BindToClient is called.
48 class RendererCompositorFrameSink 47 class RendererCompositorFrameSink
49 : NON_EXPORTED_BASE(public viz::ClientCompositorFrameSink) { 48 : NON_EXPORTED_BASE(public viz::ClientCompositorFrameSink) {
50 public: 49 public:
51 RendererCompositorFrameSink( 50 RendererCompositorFrameSink(
52 int32_t routing_id, 51 int32_t routing_id,
53 std::unique_ptr<cc::SyntheticBeginFrameSource> 52 std::unique_ptr<cc::SyntheticBeginFrameSource>
54 synthetic_begin_frame_source, 53 synthetic_begin_frame_source,
55 scoped_refptr<cc::ContextProvider> context_provider, 54 scoped_refptr<cc::ContextProvider> context_provider,
56 scoped_refptr<cc::ContextProvider> worker_context_provider, 55 scoped_refptr<cc::ContextProvider> worker_context_provider,
57 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, 56 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
58 cc::SharedBitmapManager* shared_bitmap_manager, 57 cc::SharedBitmapManager* shared_bitmap_manager,
59 cc::mojom::MojoCompositorFrameSinkPtrInfo sink_info, 58 cc::mojom::MojoCompositorFrameSinkPtrInfo sink_info,
60 cc::mojom::MojoCompositorFrameSinkClientRequest sink_client_request, 59 cc::mojom::MojoCompositorFrameSinkClientRequest sink_client_request);
61 scoped_refptr<FrameSwapMessageQueue> swap_frame_message_queue);
62 RendererCompositorFrameSink( 60 RendererCompositorFrameSink(
63 int32_t routing_id, 61 int32_t routing_id,
64 std::unique_ptr<cc::SyntheticBeginFrameSource> 62 std::unique_ptr<cc::SyntheticBeginFrameSource>
65 synthetic_begin_frame_source, 63 synthetic_begin_frame_source,
66 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider, 64 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider,
67 cc::mojom::MojoCompositorFrameSinkPtrInfo sink_info, 65 cc::mojom::MojoCompositorFrameSinkPtrInfo sink_info,
68 cc::mojom::MojoCompositorFrameSinkClientRequest sink_client_request, 66 cc::mojom::MojoCompositorFrameSinkClientRequest sink_client_request);
69 scoped_refptr<FrameSwapMessageQueue> swap_frame_message_queue);
70 ~RendererCompositorFrameSink() override; 67 ~RendererCompositorFrameSink() override;
71 68
72 // Overriden from viz::ClientCompositorFrameSink. 69 // Overriden from viz::ClientCompositorFrameSink.
73 bool BindToClient(cc::CompositorFrameSinkClient* client) override; 70 bool BindToClient(cc::CompositorFrameSinkClient* client) override;
74 void DetachFromClient() override; 71 void DetachFromClient() override;
75 void SubmitCompositorFrame(cc::CompositorFrame frame) override; 72 void SubmitCompositorFrame(cc::CompositorFrame frame) override;
76 bool ShouldAllocateNewLocalSurfaceId( 73 bool ShouldAllocateNewLocalSurfaceId(
77 const cc::CompositorFrame& frame) override; 74 const cc::CompositorFrame& frame) override;
78 75
79 private: 76 private:
(...skipping 18 matching lines...) Expand all
98 }; 95 };
99 96
100 void OnMessageReceived(const IPC::Message& message) {} 97 void OnMessageReceived(const IPC::Message& message) {}
101 98
102 scoped_refptr<CompositorForwardingMessageFilter> 99 scoped_refptr<CompositorForwardingMessageFilter>
103 compositor_frame_sink_filter_; 100 compositor_frame_sink_filter_;
104 CompositorForwardingMessageFilter::Handler 101 CompositorForwardingMessageFilter::Handler
105 compositor_frame_sink_filter_handler_; 102 compositor_frame_sink_filter_handler_;
106 scoped_refptr<RendererCompositorFrameSinkProxy> compositor_frame_sink_proxy_; 103 scoped_refptr<RendererCompositorFrameSinkProxy> compositor_frame_sink_proxy_;
107 scoped_refptr<IPC::SyncMessageFilter> message_sender_; 104 scoped_refptr<IPC::SyncMessageFilter> message_sender_;
108 scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue_;
109 int routing_id_; 105 int routing_id_;
110 106
111 RenderWidgetSurfaceProperties current_surface_properties_; 107 RenderWidgetSurfaceProperties current_surface_properties_;
112 }; 108 };
113 109
114 } // namespace content 110 } // namespace content
115 111
116 #endif // CONTENT_RENDERER_GPU_RENDERER_COMPOSITOR_FRAME_SINK_H_ 112 #endif // CONTENT_RENDERER_GPU_RENDERER_COMPOSITOR_FRAME_SINK_H_
OLDNEW
« no previous file with comments | « content/renderer/gpu/queue_message_swap_promise_unittest.cc ('k') | content/renderer/gpu/renderer_compositor_frame_sink.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698