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

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

Issue 1541203003: IPC-based sync compositor software draw optimization (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove CHECK Created 4 years, 12 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
(...skipping 19 matching lines...) Expand all
30 class CompositorFrame; 30 class CompositorFrame;
31 } // namespace cc 31 } // namespace cc
32 32
33 namespace content { 33 namespace content {
34 34
35 class SynchronousCompositorOutputSurface; 35 class SynchronousCompositorOutputSurface;
36 struct SyncCompositorCommonBrowserParams; 36 struct SyncCompositorCommonBrowserParams;
37 struct SyncCompositorCommonRendererParams; 37 struct SyncCompositorCommonRendererParams;
38 struct SyncCompositorDemandDrawHwParams; 38 struct SyncCompositorDemandDrawHwParams;
39 struct SyncCompositorDemandDrawSwParams; 39 struct SyncCompositorDemandDrawSwParams;
40 struct SyncCompositorSetSharedMemoryParams;
40 41
41 class SynchronousCompositorProxy 42 class SynchronousCompositorProxy
42 : public ui::SynchronousInputHandler, 43 : public ui::SynchronousInputHandler,
43 public SynchronousCompositorExternalBeginFrameSourceClient, 44 public SynchronousCompositorExternalBeginFrameSourceClient,
44 public SynchronousCompositorOutputSurfaceClient { 45 public SynchronousCompositorOutputSurfaceClient {
45 public: 46 public:
46 SynchronousCompositorProxy( 47 SynchronousCompositorProxy(
47 int routing_id, 48 int routing_id,
48 IPC::Sender* sender, 49 IPC::Sender* sender,
49 SynchronousCompositorOutputSurface* output_surface, 50 SynchronousCompositorOutputSurface* output_surface,
(...skipping 15 matching lines...) Expand all
65 void OnNeedsBeginFramesChange(bool needs_begin_frames) override; 66 void OnNeedsBeginFramesChange(bool needs_begin_frames) override;
66 67
67 // SynchronousCompositorOutputSurfaceClient overrides. 68 // SynchronousCompositorOutputSurfaceClient overrides.
68 void Invalidate() override; 69 void Invalidate() override;
69 70
70 void OnMessageReceived(const IPC::Message& message); 71 void OnMessageReceived(const IPC::Message& message);
71 bool Send(IPC::Message* message); 72 bool Send(IPC::Message* message);
72 void DidOverscroll(const DidOverscrollParams& did_overscroll_params); 73 void DidOverscroll(const DidOverscrollParams& did_overscroll_params);
73 74
74 private: 75 private:
76 struct SharedMemoryWithSize;
77
75 void ProcessCommonParams( 78 void ProcessCommonParams(
76 const SyncCompositorCommonBrowserParams& common_params); 79 const SyncCompositorCommonBrowserParams& common_params);
77 void PopulateCommonParams(SyncCompositorCommonRendererParams* params); 80 void PopulateCommonParams(SyncCompositorCommonRendererParams* params);
78 81
79 // IPC handlers. 82 // IPC handlers.
80 void HandleInputEvent( 83 void HandleInputEvent(
81 const SyncCompositorCommonBrowserParams& common_params, 84 const SyncCompositorCommonBrowserParams& common_params,
82 const blink::WebInputEvent* event, 85 const blink::WebInputEvent* event,
83 SyncCompositorCommonRendererParams* common_renderer_params, 86 SyncCompositorCommonRendererParams* common_renderer_params,
84 InputEventAckState* ack); 87 InputEventAckState* ack);
85 void BeginFrame(const SyncCompositorCommonBrowserParams& common_params, 88 void BeginFrame(const SyncCompositorCommonBrowserParams& common_params,
86 const cc::BeginFrameArgs& args, 89 const cc::BeginFrameArgs& args,
87 SyncCompositorCommonRendererParams* common_renderer_params); 90 SyncCompositorCommonRendererParams* common_renderer_params);
88 void OnComputeScroll( 91 void OnComputeScroll(
89 const SyncCompositorCommonBrowserParams& common_params, 92 const SyncCompositorCommonBrowserParams& common_params,
90 base::TimeTicks animation_time, 93 base::TimeTicks animation_time,
91 SyncCompositorCommonRendererParams* common_renderer_params); 94 SyncCompositorCommonRendererParams* common_renderer_params);
92 void DemandDrawHw(const SyncCompositorCommonBrowserParams& common_params, 95 void DemandDrawHw(const SyncCompositorCommonBrowserParams& common_params,
93 const SyncCompositorDemandDrawHwParams& params, 96 const SyncCompositorDemandDrawHwParams& params,
94 SyncCompositorCommonRendererParams* common_renderer_params, 97 SyncCompositorCommonRendererParams* common_renderer_params,
95 cc::CompositorFrame* frame); 98 cc::CompositorFrame* frame);
99 void SetSharedMemory(
100 const SyncCompositorCommonBrowserParams& common_params,
101 const SyncCompositorSetSharedMemoryParams& params,
102 bool* success,
103 SyncCompositorCommonRendererParams* common_renderer_params);
104 void ZeroSharedMemory();
96 void DemandDrawSw(const SyncCompositorCommonBrowserParams& common_params, 105 void DemandDrawSw(const SyncCompositorCommonBrowserParams& common_params,
97 const SyncCompositorDemandDrawSwParams& params, 106 const SyncCompositorDemandDrawSwParams& params,
98 bool* result, 107 bool* result,
99 SyncCompositorCommonRendererParams* common_renderer_params, 108 SyncCompositorCommonRendererParams* common_renderer_params,
100 cc::CompositorFrame* frame); 109 cc::CompositorFrame* frame);
101 110
102 void DidActivatePendingTree(); 111 void DidActivatePendingTree();
103 void DeliverMessages(); 112 void DeliverMessages();
104 void SendAsyncRendererStateIfNeeded(); 113 void SendAsyncRendererStateIfNeeded();
105 114
106 const int routing_id_; 115 const int routing_id_;
107 IPC::Sender* const sender_; 116 IPC::Sender* const sender_;
108 SynchronousCompositorOutputSurface* const output_surface_; 117 SynchronousCompositorOutputSurface* const output_surface_;
109 SynchronousCompositorExternalBeginFrameSource* const begin_frame_source_; 118 SynchronousCompositorExternalBeginFrameSource* const begin_frame_source_;
110 ui::SynchronousInputHandlerProxy* const input_handler_proxy_; 119 ui::SynchronousInputHandlerProxy* const input_handler_proxy_;
111 InputHandlerManagerClient::Handler* const input_handler_; 120 InputHandlerManagerClient::Handler* const input_handler_;
112 bool inside_receive_; 121 bool inside_receive_;
113 122
114 // From browser. 123 // From browser.
115 size_t bytes_limit_; 124 size_t bytes_limit_;
125 scoped_ptr<SharedMemoryWithSize> software_draw_shm_;
116 126
127 // To browser.
117 uint32_t version_; 128 uint32_t version_;
118 gfx::ScrollOffset total_scroll_offset_; // Modified by both. 129 gfx::ScrollOffset total_scroll_offset_; // Modified by both.
119 gfx::ScrollOffset max_scroll_offset_; 130 gfx::ScrollOffset max_scroll_offset_;
120 gfx::SizeF scrollable_size_; 131 gfx::SizeF scrollable_size_;
121 float page_scale_factor_; 132 float page_scale_factor_;
122 float min_page_scale_factor_; 133 float min_page_scale_factor_;
123 float max_page_scale_factor_; 134 float max_page_scale_factor_;
124 bool need_animate_scroll_; 135 bool need_animate_scroll_;
125 bool need_invalidate_; 136 bool need_invalidate_;
126 bool need_begin_frame_; 137 bool need_begin_frame_;
127 bool did_activate_pending_tree_; 138 bool did_activate_pending_tree_;
128 139
129 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorProxy); 140 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorProxy);
130 }; 141 };
131 142
132 } // namespace content 143 } // namespace content
133 144
134 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_ 145 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_
OLDNEW
« no previous file with comments | « content/common/android/sync_compositor_messages.cc ('k') | content/renderer/android/synchronous_compositor_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698