OLD | NEW |
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 "base/macros.h" | 8 #include "base/macros.h" |
9 #include "content/common/input/input_event_ack_state.h" | 9 #include "content/common/input/input_event_ack_state.h" |
10 #include "content/renderer/android/synchronous_compositor_external_begin_frame_s
ource.h" | 10 #include "content/renderer/android/synchronous_compositor_external_begin_frame_s
ource.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 class CompositorFrame; | 27 class CompositorFrame; |
28 } // namespace cc | 28 } // namespace cc |
29 | 29 |
30 namespace content { | 30 namespace content { |
31 | 31 |
32 class SynchronousCompositorOutputSurface; | 32 class SynchronousCompositorOutputSurface; |
33 struct SyncCompositorCommonBrowserParams; | 33 struct SyncCompositorCommonBrowserParams; |
34 struct SyncCompositorCommonRendererParams; | 34 struct SyncCompositorCommonRendererParams; |
35 struct SyncCompositorDemandDrawHwParams; | 35 struct SyncCompositorDemandDrawHwParams; |
36 struct SyncCompositorDemandDrawSwParams; | 36 struct SyncCompositorDemandDrawSwParams; |
| 37 struct SyncCompositorSetSharedMemoryParams; |
37 | 38 |
38 class SynchronousCompositorProxy | 39 class SynchronousCompositorProxy |
39 : public ui::SynchronousInputHandler, | 40 : public ui::SynchronousInputHandler, |
40 public SynchronousCompositorExternalBeginFrameSourceClient, | 41 public SynchronousCompositorExternalBeginFrameSourceClient, |
41 public SynchronousCompositorOutputSurfaceClient { | 42 public SynchronousCompositorOutputSurfaceClient { |
42 public: | 43 public: |
43 SynchronousCompositorProxy( | 44 SynchronousCompositorProxy( |
44 int routing_id, | 45 int routing_id, |
45 IPC::Sender* sender, | 46 IPC::Sender* sender, |
46 SynchronousCompositorOutputSurface* output_surface, | 47 SynchronousCompositorOutputSurface* output_surface, |
(...skipping 15 matching lines...) Expand all Loading... |
62 void OnNeedsBeginFramesChange(bool needs_begin_frames) override; | 63 void OnNeedsBeginFramesChange(bool needs_begin_frames) override; |
63 | 64 |
64 // SynchronousCompositorOutputSurfaceClient overrides. | 65 // SynchronousCompositorOutputSurfaceClient overrides. |
65 void Invalidate() override; | 66 void Invalidate() override; |
66 | 67 |
67 void OnMessageReceived(const IPC::Message& message); | 68 void OnMessageReceived(const IPC::Message& message); |
68 bool Send(IPC::Message* message); | 69 bool Send(IPC::Message* message); |
69 void DidOverscroll(const DidOverscrollParams& did_overscroll_params); | 70 void DidOverscroll(const DidOverscrollParams& did_overscroll_params); |
70 | 71 |
71 private: | 72 private: |
| 73 struct SharedMemoryWithSize; |
| 74 |
72 void ProcessCommonParams( | 75 void ProcessCommonParams( |
73 const SyncCompositorCommonBrowserParams& common_params); | 76 const SyncCompositorCommonBrowserParams& common_params); |
74 void PopulateCommonParams(SyncCompositorCommonRendererParams* params); | 77 void PopulateCommonParams(SyncCompositorCommonRendererParams* params); |
75 | 78 |
76 // IPC handlers. | 79 // IPC handlers. |
77 void HandleInputEvent( | 80 void HandleInputEvent( |
78 const SyncCompositorCommonBrowserParams& common_params, | 81 const SyncCompositorCommonBrowserParams& common_params, |
79 const blink::WebInputEvent* event, | 82 const blink::WebInputEvent* event, |
80 SyncCompositorCommonRendererParams* common_renderer_params, | 83 SyncCompositorCommonRendererParams* common_renderer_params, |
81 InputEventAckState* ack); | 84 InputEventAckState* ack); |
82 void BeginFrame(const SyncCompositorCommonBrowserParams& common_params, | 85 void BeginFrame(const SyncCompositorCommonBrowserParams& common_params, |
83 const cc::BeginFrameArgs& args, | 86 const cc::BeginFrameArgs& args, |
84 SyncCompositorCommonRendererParams* common_renderer_params); | 87 SyncCompositorCommonRendererParams* common_renderer_params); |
85 void OnComputeScroll( | 88 void OnComputeScroll( |
86 const SyncCompositorCommonBrowserParams& common_params, | 89 const SyncCompositorCommonBrowserParams& common_params, |
87 base::TimeTicks animation_time, | 90 base::TimeTicks animation_time, |
88 SyncCompositorCommonRendererParams* common_renderer_params); | 91 SyncCompositorCommonRendererParams* common_renderer_params); |
89 void DemandDrawHw(const SyncCompositorCommonBrowserParams& common_params, | 92 void DemandDrawHw(const SyncCompositorCommonBrowserParams& common_params, |
90 const SyncCompositorDemandDrawHwParams& params, | 93 const SyncCompositorDemandDrawHwParams& params, |
91 SyncCompositorCommonRendererParams* common_renderer_params, | 94 SyncCompositorCommonRendererParams* common_renderer_params, |
92 cc::CompositorFrame* frame); | 95 cc::CompositorFrame* frame); |
| 96 void SetSharedMemory( |
| 97 const SyncCompositorCommonBrowserParams& common_params, |
| 98 const SyncCompositorSetSharedMemoryParams& params, |
| 99 bool* success, |
| 100 SyncCompositorCommonRendererParams* common_renderer_params); |
| 101 void ZeroSharedMemory(); |
93 void DemandDrawSw(const SyncCompositorCommonBrowserParams& common_params, | 102 void DemandDrawSw(const SyncCompositorCommonBrowserParams& common_params, |
94 const SyncCompositorDemandDrawSwParams& params, | 103 const SyncCompositorDemandDrawSwParams& params, |
95 bool* result, | 104 bool* result, |
96 SyncCompositorCommonRendererParams* common_renderer_params, | 105 SyncCompositorCommonRendererParams* common_renderer_params, |
97 cc::CompositorFrame* frame); | 106 cc::CompositorFrame* frame); |
98 | 107 |
99 void DidActivatePendingTree(); | 108 void DidActivatePendingTree(); |
100 void DeliverMessages(); | 109 void DeliverMessages(); |
101 void SendAsyncRendererStateIfNeeded(); | 110 void SendAsyncRendererStateIfNeeded(); |
102 | 111 |
103 const int routing_id_; | 112 const int routing_id_; |
104 IPC::Sender* const sender_; | 113 IPC::Sender* const sender_; |
105 SynchronousCompositorOutputSurface* const output_surface_; | 114 SynchronousCompositorOutputSurface* const output_surface_; |
106 SynchronousCompositorExternalBeginFrameSource* const begin_frame_source_; | 115 SynchronousCompositorExternalBeginFrameSource* const begin_frame_source_; |
107 ui::SynchronousInputHandlerProxy* const input_handler_proxy_; | 116 ui::SynchronousInputHandlerProxy* const input_handler_proxy_; |
108 InputHandlerManagerClient::Handler* const input_handler_; | 117 InputHandlerManagerClient::Handler* const input_handler_; |
109 bool inside_receive_; | 118 bool inside_receive_; |
110 | 119 |
111 // From browser. | 120 // From browser. |
112 size_t bytes_limit_; | 121 size_t bytes_limit_; |
| 122 scoped_ptr<SharedMemoryWithSize> software_draw_shm_; |
113 | 123 |
| 124 // To browser. |
114 uint32_t version_; | 125 uint32_t version_; |
115 gfx::ScrollOffset total_scroll_offset_; // Modified by both. | 126 gfx::ScrollOffset total_scroll_offset_; // Modified by both. |
116 gfx::ScrollOffset max_scroll_offset_; | 127 gfx::ScrollOffset max_scroll_offset_; |
117 gfx::SizeF scrollable_size_; | 128 gfx::SizeF scrollable_size_; |
118 float page_scale_factor_; | 129 float page_scale_factor_; |
119 float min_page_scale_factor_; | 130 float min_page_scale_factor_; |
120 float max_page_scale_factor_; | 131 float max_page_scale_factor_; |
121 bool need_animate_scroll_; | 132 bool need_animate_scroll_; |
122 bool need_invalidate_; | 133 bool need_invalidate_; |
123 bool need_begin_frame_; | 134 bool need_begin_frame_; |
124 bool did_activate_pending_tree_; | 135 bool did_activate_pending_tree_; |
125 | 136 |
126 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorProxy); | 137 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorProxy); |
127 }; | 138 }; |
128 | 139 |
129 } // namespace content | 140 } // namespace content |
130 | 141 |
131 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_ | 142 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_ |
OLD | NEW |