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

Side by Side Diff: content/renderer/android/synchronous_compositor_proxy.h

Issue 1969263004: sync compositor: Remove begin frame source (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment Created 4 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_ 5 #ifndef CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_
6 #define CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_ 6 #define CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "content/common/input/input_event_ack_state.h" 12 #include "content/common/input/input_event_ack_state.h"
13 #include "content/renderer/android/synchronous_compositor_external_begin_frame_s ource.h"
14 #include "content/renderer/android/synchronous_compositor_output_surface.h" 13 #include "content/renderer/android/synchronous_compositor_output_surface.h"
15 #include "content/renderer/input/input_handler_manager_client.h" 14 #include "content/renderer/input/input_handler_manager_client.h"
16 #include "ui/events/blink/synchronous_input_handler_proxy.h" 15 #include "ui/events/blink/synchronous_input_handler_proxy.h"
17 #include "ui/gfx/geometry/scroll_offset.h" 16 #include "ui/gfx/geometry/scroll_offset.h"
18 #include "ui/gfx/geometry/size_f.h" 17 #include "ui/gfx/geometry/size_f.h"
19 18
20 class SkCanvas; 19 class SkCanvas;
21 20
22 namespace IPC { 21 namespace IPC {
23 class Message; 22 class Message;
24 class Sender; 23 class Sender;
25 } // namespace IPC 24 } // namespace IPC
26 25
27 namespace blink { 26 namespace blink {
28 class WebInputEvent; 27 class WebInputEvent;
29 } // namespace blink 28 } // namespace blink
30 29
31 namespace cc { 30 namespace cc {
32 class CompositorFrame; 31 class CompositorFrame;
33 } // namespace cc 32 } // namespace cc
34 33
35 namespace content { 34 namespace content {
36 35
37 class SynchronousCompositorOutputSurface; 36 class SynchronousCompositorOutputSurface;
38 struct SyncCompositorCommonBrowserParams;
39 struct SyncCompositorCommonRendererParams; 37 struct SyncCompositorCommonRendererParams;
40 struct SyncCompositorDemandDrawHwParams; 38 struct SyncCompositorDemandDrawHwParams;
41 struct SyncCompositorDemandDrawSwParams; 39 struct SyncCompositorDemandDrawSwParams;
42 struct SyncCompositorSetSharedMemoryParams; 40 struct SyncCompositorSetSharedMemoryParams;
43 41
44 class SynchronousCompositorProxy 42 class SynchronousCompositorProxy
45 : public ui::SynchronousInputHandler, 43 : public ui::SynchronousInputHandler,
46 public SynchronousCompositorExternalBeginFrameSourceClient,
47 public SynchronousCompositorOutputSurfaceClient { 44 public SynchronousCompositorOutputSurfaceClient {
48 public: 45 public:
49 SynchronousCompositorProxy( 46 SynchronousCompositorProxy(
50 int routing_id, 47 int routing_id,
51 IPC::Sender* sender, 48 IPC::Sender* sender,
52 SynchronousCompositorExternalBeginFrameSource* begin_frame_source,
53 ui::SynchronousInputHandlerProxy* input_handler_proxy, 49 ui::SynchronousInputHandlerProxy* input_handler_proxy,
54 InputHandlerManagerClient::Handler* handler); 50 InputHandlerManagerClient::Handler* handler);
55 ~SynchronousCompositorProxy() override; 51 ~SynchronousCompositorProxy() override;
56 52
57 // ui::SynchronousInputHandler overrides. 53 // ui::SynchronousInputHandler overrides.
58 void SetNeedsSynchronousAnimateInput() override; 54 void SetNeedsSynchronousAnimateInput() override;
59 void UpdateRootLayerState(const gfx::ScrollOffset& total_scroll_offset, 55 void UpdateRootLayerState(const gfx::ScrollOffset& total_scroll_offset,
60 const gfx::ScrollOffset& max_scroll_offset, 56 const gfx::ScrollOffset& max_scroll_offset,
61 const gfx::SizeF& scrollable_size, 57 const gfx::SizeF& scrollable_size,
62 float page_scale_factor, 58 float page_scale_factor,
63 float min_page_scale_factor, 59 float min_page_scale_factor,
64 float max_page_scale_factor) override; 60 float max_page_scale_factor) override;
65 61
66 // SynchronousCompositorExternalBeginFrameSourceClient overrides.
67 void OnNeedsBeginFramesChange(bool needs_begin_frames) override;
68
69 // SynchronousCompositorOutputSurfaceClient overrides. 62 // SynchronousCompositorOutputSurfaceClient overrides.
70 void DidActivatePendingTree() override; 63 void DidActivatePendingTree() override;
71 void Invalidate() override; 64 void Invalidate() override;
72 void SwapBuffers(uint32_t output_surface_id, 65 void SwapBuffers(uint32_t output_surface_id,
73 cc::CompositorFrame* frame) override; 66 cc::CompositorFrame* frame) override;
74 67
75 void SetOutputSurface(SynchronousCompositorOutputSurface* output_surface); 68 void SetOutputSurface(SynchronousCompositorOutputSurface* output_surface);
76 void OnMessageReceived(const IPC::Message& message); 69 void OnMessageReceived(const IPC::Message& message);
77 bool Send(IPC::Message* message); 70 bool Send(IPC::Message* message);
78 void DidOverscroll(const DidOverscrollParams& did_overscroll_params); 71 void DidOverscroll(const DidOverscrollParams& did_overscroll_params);
79 72
80 private: 73 private:
81 struct SharedMemoryWithSize; 74 struct SharedMemoryWithSize;
82 75
83 void ProcessCommonParams( 76 // IPC handlers.
84 const SyncCompositorCommonBrowserParams& common_params);
85 void PopulateCommonParams(SyncCompositorCommonRendererParams* params) const; 77 void PopulateCommonParams(SyncCompositorCommonRendererParams* params) const;
86
87 // IPC handlers.
88 void HandleInputEvent( 78 void HandleInputEvent(
89 const SyncCompositorCommonBrowserParams& common_params,
90 const blink::WebInputEvent* event, 79 const blink::WebInputEvent* event,
91 SyncCompositorCommonRendererParams* common_renderer_params, 80 SyncCompositorCommonRendererParams* common_renderer_params,
92 InputEventAckState* ack); 81 InputEventAckState* ack);
93 void BeginFrame(const SyncCompositorCommonBrowserParams& common_params, 82 void OnComputeScroll(base::TimeTicks animation_time);
94 const cc::BeginFrameArgs& args, 83 void DemandDrawHw(const SyncCompositorDemandDrawHwParams& params,
95 SyncCompositorCommonRendererParams* common_renderer_params);
96 void OnComputeScroll(const SyncCompositorCommonBrowserParams& common_params,
97 base::TimeTicks animation_time);
98 void DemandDrawHw(const SyncCompositorCommonBrowserParams& common_params,
99 const SyncCompositorDemandDrawHwParams& params,
100 IPC::Message* reply_message); 84 IPC::Message* reply_message);
101 void SetSharedMemory( 85 void SetSharedMemory(
102 const SyncCompositorCommonBrowserParams& common_params,
103 const SyncCompositorSetSharedMemoryParams& params, 86 const SyncCompositorSetSharedMemoryParams& params,
104 bool* success, 87 bool* success,
105 SyncCompositorCommonRendererParams* common_renderer_params); 88 SyncCompositorCommonRendererParams* common_renderer_params);
106 void ZeroSharedMemory(); 89 void ZeroSharedMemory();
107 void DemandDrawSw(const SyncCompositorCommonBrowserParams& common_params, 90 void DemandDrawSw(const SyncCompositorDemandDrawSwParams& params,
108 const SyncCompositorDemandDrawSwParams& params,
109 IPC::Message* reply_message); 91 IPC::Message* reply_message);
110 void SynchronouslyZoomBy( 92 void SynchronouslyZoomBy(
111 const SyncCompositorCommonBrowserParams& common_params,
112 float zoom_delta, 93 float zoom_delta,
113 const gfx::Point& anchor, 94 const gfx::Point& anchor,
114 SyncCompositorCommonRendererParams* common_renderer_params); 95 SyncCompositorCommonRendererParams* common_renderer_params);
115 void SetScroll(const gfx::ScrollOffset& total_scroll_offset); 96 void SetScroll(const gfx::ScrollOffset& total_scroll_offset);
116 97
117 void SwapBuffersHw(uint32_t output_surface_id, cc::CompositorFrame* frame); 98 void SwapBuffersHw(uint32_t output_surface_id, cc::CompositorFrame* frame);
118 void SendDemandDrawHwReply(cc::CompositorFrame* frame, 99 void SendDemandDrawHwReply(cc::CompositorFrame* frame,
119 uint32_t output_surface_id, 100 uint32_t output_surface_id,
120 IPC::Message* reply_message); 101 IPC::Message* reply_message);
121 void DoDemandDrawSw(const SyncCompositorDemandDrawSwParams& params); 102 void DoDemandDrawSw(const SyncCompositorDemandDrawSwParams& params);
122 void SwapBuffersSw(cc::CompositorFrame* frame); 103 void SwapBuffersSw(cc::CompositorFrame* frame);
123 void SendDemandDrawSwReply(bool success, 104 void SendDemandDrawSwReply(bool success,
124 cc::CompositorFrame* frame, 105 cc::CompositorFrame* frame,
125 IPC::Message* reply_message); 106 IPC::Message* reply_message);
126 void SendAsyncRendererStateIfNeeded(); 107 void SendAsyncRendererStateIfNeeded();
127 108
128 const int routing_id_; 109 const int routing_id_;
129 IPC::Sender* const sender_; 110 IPC::Sender* const sender_;
130 SynchronousCompositorExternalBeginFrameSource* const begin_frame_source_;
131 ui::SynchronousInputHandlerProxy* const input_handler_proxy_; 111 ui::SynchronousInputHandlerProxy* const input_handler_proxy_;
132 InputHandlerManagerClient::Handler* const input_handler_; 112 InputHandlerManagerClient::Handler* const input_handler_;
133 const bool use_in_process_zero_copy_software_draw_; 113 const bool use_in_process_zero_copy_software_draw_;
134 SynchronousCompositorOutputSurface* output_surface_; 114 SynchronousCompositorOutputSurface* output_surface_;
135 bool inside_receive_; 115 bool inside_receive_;
136 IPC::Message* hardware_draw_reply_; 116 IPC::Message* hardware_draw_reply_;
137 IPC::Message* software_draw_reply_; 117 IPC::Message* software_draw_reply_;
138 118
139 // From browser. 119 // From browser.
140 std::unique_ptr<SharedMemoryWithSize> software_draw_shm_; 120 std::unique_ptr<SharedMemoryWithSize> software_draw_shm_;
141 121
142 // To browser. 122 // To browser.
143 mutable uint32_t version_; // Mustable so PopulateCommonParams can be const. 123 mutable uint32_t version_; // Mustable so PopulateCommonParams can be const.
144 gfx::ScrollOffset total_scroll_offset_; // Modified by both. 124 gfx::ScrollOffset total_scroll_offset_; // Modified by both.
145 gfx::ScrollOffset max_scroll_offset_; 125 gfx::ScrollOffset max_scroll_offset_;
146 gfx::SizeF scrollable_size_; 126 gfx::SizeF scrollable_size_;
147 float page_scale_factor_; 127 float page_scale_factor_;
148 float min_page_scale_factor_; 128 float min_page_scale_factor_;
149 float max_page_scale_factor_; 129 float max_page_scale_factor_;
150 bool need_animate_scroll_; 130 bool need_animate_scroll_;
151 uint32_t need_invalidate_count_; 131 uint32_t need_invalidate_count_;
152 bool need_begin_frame_;
153 uint32_t did_activate_pending_tree_count_; 132 uint32_t did_activate_pending_tree_count_;
154 133
155 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorProxy); 134 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorProxy);
156 }; 135 };
157 136
158 } // namespace content 137 } // namespace content
159 138
160 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_ 139 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698