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

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: rebase onto https://codereview.chromium.org/1974133002/ 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 "ui/events/blink/synchronous_input_handler_proxy.h" 14 #include "ui/events/blink/synchronous_input_handler_proxy.h"
16 #include "ui/gfx/geometry/scroll_offset.h" 15 #include "ui/gfx/geometry/scroll_offset.h"
17 #include "ui/gfx/geometry/size_f.h" 16 #include "ui/gfx/geometry/size_f.h"
18 17
19 class SkCanvas; 18 class SkCanvas;
20 19
21 namespace IPC { 20 namespace IPC {
22 class Message; 21 class Message;
23 class Sender; 22 class Sender;
24 } // namespace IPC 23 } // namespace IPC
25 24
26 namespace blink { 25 namespace blink {
27 class WebInputEvent; 26 class WebInputEvent;
28 } // namespace blink 27 } // namespace blink
29 28
30 namespace cc { 29 namespace cc {
31 class CompositorFrame; 30 class CompositorFrame;
32 } // namespace cc 31 } // namespace cc
33 32
34 namespace content { 33 namespace content {
35 34
36 class SynchronousCompositorOutputSurface; 35 class SynchronousCompositorOutputSurface;
37 struct SyncCompositorCommonBrowserParams;
38 struct SyncCompositorCommonRendererParams; 36 struct SyncCompositorCommonRendererParams;
39 struct SyncCompositorDemandDrawHwParams; 37 struct SyncCompositorDemandDrawHwParams;
40 struct SyncCompositorDemandDrawSwParams; 38 struct SyncCompositorDemandDrawSwParams;
41 struct SyncCompositorSetSharedMemoryParams; 39 struct SyncCompositorSetSharedMemoryParams;
42 40
43 class SynchronousCompositorProxy 41 class SynchronousCompositorProxy
44 : public ui::SynchronousInputHandler, 42 : public ui::SynchronousInputHandler,
45 public SynchronousCompositorExternalBeginFrameSourceClient,
46 public SynchronousCompositorOutputSurfaceClient { 43 public SynchronousCompositorOutputSurfaceClient {
47 public: 44 public:
48 SynchronousCompositorProxy( 45 SynchronousCompositorProxy(
49 int routing_id, 46 int routing_id,
50 IPC::Sender* sender, 47 IPC::Sender* sender,
51 SynchronousCompositorExternalBeginFrameSource* begin_frame_source,
52 ui::SynchronousInputHandlerProxy* input_handler_proxy); 48 ui::SynchronousInputHandlerProxy* input_handler_proxy);
53 ~SynchronousCompositorProxy() override; 49 ~SynchronousCompositorProxy() override;
54 50
55 // ui::SynchronousInputHandler overrides. 51 // ui::SynchronousInputHandler overrides.
56 void SetNeedsSynchronousAnimateInput() override; 52 void SetNeedsSynchronousAnimateInput() override;
57 void UpdateRootLayerState(const gfx::ScrollOffset& total_scroll_offset, 53 void UpdateRootLayerState(const gfx::ScrollOffset& total_scroll_offset,
58 const gfx::ScrollOffset& max_scroll_offset, 54 const gfx::ScrollOffset& max_scroll_offset,
59 const gfx::SizeF& scrollable_size, 55 const gfx::SizeF& scrollable_size,
60 float page_scale_factor, 56 float page_scale_factor,
61 float min_page_scale_factor, 57 float min_page_scale_factor,
62 float max_page_scale_factor) override; 58 float max_page_scale_factor) override;
63 59
64 // SynchronousCompositorExternalBeginFrameSourceClient overrides.
65 void OnNeedsBeginFramesChange(bool needs_begin_frames) override;
66
67 // SynchronousCompositorOutputSurfaceClient overrides. 60 // SynchronousCompositorOutputSurfaceClient overrides.
68 void DidActivatePendingTree() override; 61 void DidActivatePendingTree() override;
69 void Invalidate() override; 62 void Invalidate() override;
70 void SwapBuffers(uint32_t output_surface_id, 63 void SwapBuffers(uint32_t output_surface_id,
71 cc::CompositorFrame* frame) override; 64 cc::CompositorFrame* frame) override;
72 65
73 void SetOutputSurface(SynchronousCompositorOutputSurface* output_surface); 66 void SetOutputSurface(SynchronousCompositorOutputSurface* output_surface);
74 void OnMessageReceived(const IPC::Message& message); 67 void OnMessageReceived(const IPC::Message& message);
75 bool Send(IPC::Message* message); 68 bool Send(IPC::Message* message);
76 69
77 private: 70 private:
78 struct SharedMemoryWithSize; 71 struct SharedMemoryWithSize;
79 72
80 void ProcessCommonParams( 73 // IPC handlers.
81 const SyncCompositorCommonBrowserParams& common_params);
82 void PopulateCommonParams(SyncCompositorCommonRendererParams* params) const; 74 void PopulateCommonParams(SyncCompositorCommonRendererParams* params) const;
83 75 void OnComputeScroll(base::TimeTicks animation_time);
84 // IPC handlers. 76 void DemandDrawHw(const SyncCompositorDemandDrawHwParams& params,
85 void BeginFrame(const SyncCompositorCommonBrowserParams& common_params,
86 const cc::BeginFrameArgs& args,
87 SyncCompositorCommonRendererParams* common_renderer_params);
88 void OnComputeScroll(const SyncCompositorCommonBrowserParams& common_params,
89 base::TimeTicks animation_time);
90 void DemandDrawHw(const SyncCompositorCommonBrowserParams& common_params,
91 const SyncCompositorDemandDrawHwParams& params,
92 IPC::Message* reply_message); 77 IPC::Message* reply_message);
93 void SetSharedMemory( 78 void SetSharedMemory(
94 const SyncCompositorCommonBrowserParams& common_params,
95 const SyncCompositorSetSharedMemoryParams& params, 79 const SyncCompositorSetSharedMemoryParams& params,
96 bool* success, 80 bool* success,
97 SyncCompositorCommonRendererParams* common_renderer_params); 81 SyncCompositorCommonRendererParams* common_renderer_params);
98 void ZeroSharedMemory(); 82 void ZeroSharedMemory();
99 void DemandDrawSw(const SyncCompositorCommonBrowserParams& common_params, 83 void DemandDrawSw(const SyncCompositorDemandDrawSwParams& params,
100 const SyncCompositorDemandDrawSwParams& params,
101 IPC::Message* reply_message); 84 IPC::Message* reply_message);
102 void SynchronouslyZoomBy( 85 void SynchronouslyZoomBy(
103 const SyncCompositorCommonBrowserParams& common_params,
104 float zoom_delta, 86 float zoom_delta,
105 const gfx::Point& anchor, 87 const gfx::Point& anchor,
106 SyncCompositorCommonRendererParams* common_renderer_params); 88 SyncCompositorCommonRendererParams* common_renderer_params);
107 void SetScroll(const gfx::ScrollOffset& total_scroll_offset); 89 void SetScroll(const gfx::ScrollOffset& total_scroll_offset);
108 90
109 void SwapBuffersHw(uint32_t output_surface_id, cc::CompositorFrame* frame); 91 void SwapBuffersHw(uint32_t output_surface_id, cc::CompositorFrame* frame);
110 void SendDemandDrawHwReply(cc::CompositorFrame* frame, 92 void SendDemandDrawHwReply(cc::CompositorFrame* frame,
111 uint32_t output_surface_id, 93 uint32_t output_surface_id,
112 IPC::Message* reply_message); 94 IPC::Message* reply_message);
113 void DoDemandDrawSw(const SyncCompositorDemandDrawSwParams& params); 95 void DoDemandDrawSw(const SyncCompositorDemandDrawSwParams& params);
114 void SwapBuffersSw(cc::CompositorFrame* frame); 96 void SwapBuffersSw(cc::CompositorFrame* frame);
115 void SendDemandDrawSwReply(bool success, 97 void SendDemandDrawSwReply(bool success,
116 cc::CompositorFrame* frame, 98 cc::CompositorFrame* frame,
117 IPC::Message* reply_message); 99 IPC::Message* reply_message);
118 void SendAsyncRendererStateIfNeeded(); 100 void SendAsyncRendererStateIfNeeded();
119 101
120 const int routing_id_; 102 const int routing_id_;
121 IPC::Sender* const sender_; 103 IPC::Sender* const sender_;
122 SynchronousCompositorExternalBeginFrameSource* const begin_frame_source_;
123 ui::SynchronousInputHandlerProxy* const input_handler_proxy_; 104 ui::SynchronousInputHandlerProxy* const input_handler_proxy_;
124 const bool use_in_process_zero_copy_software_draw_; 105 const bool use_in_process_zero_copy_software_draw_;
125 SynchronousCompositorOutputSurface* output_surface_; 106 SynchronousCompositorOutputSurface* output_surface_;
126 bool inside_receive_; 107 bool inside_receive_;
127 IPC::Message* hardware_draw_reply_; 108 IPC::Message* hardware_draw_reply_;
128 IPC::Message* software_draw_reply_; 109 IPC::Message* software_draw_reply_;
129 110
130 // From browser. 111 // From browser.
131 std::unique_ptr<SharedMemoryWithSize> software_draw_shm_; 112 std::unique_ptr<SharedMemoryWithSize> software_draw_shm_;
132 113
133 // To browser. 114 // To browser.
134 mutable uint32_t version_; // Mustable so PopulateCommonParams can be const. 115 mutable uint32_t version_; // Mustable so PopulateCommonParams can be const.
135 gfx::ScrollOffset total_scroll_offset_; // Modified by both. 116 gfx::ScrollOffset total_scroll_offset_; // Modified by both.
136 gfx::ScrollOffset max_scroll_offset_; 117 gfx::ScrollOffset max_scroll_offset_;
137 gfx::SizeF scrollable_size_; 118 gfx::SizeF scrollable_size_;
138 float page_scale_factor_; 119 float page_scale_factor_;
139 float min_page_scale_factor_; 120 float min_page_scale_factor_;
140 float max_page_scale_factor_; 121 float max_page_scale_factor_;
141 bool need_animate_scroll_; 122 bool need_animate_scroll_;
142 uint32_t need_invalidate_count_; 123 uint32_t need_invalidate_count_;
143 bool need_begin_frame_;
144 uint32_t did_activate_pending_tree_count_; 124 uint32_t did_activate_pending_tree_count_;
145 125
146 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorProxy); 126 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorProxy);
147 }; 127 };
148 128
149 } // namespace content 129 } // namespace content
150 130
151 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_ 131 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698