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

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

Issue 1773873002: sync compositor: Handle context loss (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 9 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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 : public ui::SynchronousInputHandler, 45 : public ui::SynchronousInputHandler,
46 public SynchronousCompositorExternalBeginFrameSourceClient, 46 public SynchronousCompositorExternalBeginFrameSourceClient,
47 public SynchronousCompositorOutputSurfaceClient { 47 public SynchronousCompositorOutputSurfaceClient {
48 public: 48 public:
49 // Called by browser side. 49 // Called by browser side.
50 static void SetSkCanvasForDraw(SkCanvas* canvas); 50 static void SetSkCanvasForDraw(SkCanvas* canvas);
51 51
52 SynchronousCompositorProxy( 52 SynchronousCompositorProxy(
53 int routing_id, 53 int routing_id,
54 IPC::Sender* sender, 54 IPC::Sender* sender,
55 SynchronousCompositorOutputSurface* output_surface,
56 SynchronousCompositorExternalBeginFrameSource* begin_frame_source, 55 SynchronousCompositorExternalBeginFrameSource* begin_frame_source,
57 ui::SynchronousInputHandlerProxy* input_handler_proxy, 56 ui::SynchronousInputHandlerProxy* input_handler_proxy,
58 InputHandlerManagerClient::Handler* handler); 57 InputHandlerManagerClient::Handler* handler);
59 ~SynchronousCompositorProxy() override; 58 ~SynchronousCompositorProxy() override;
60 59
61 // ui::SynchronousInputHandler overrides. 60 // ui::SynchronousInputHandler overrides.
62 void SetNeedsSynchronousAnimateInput() override; 61 void SetNeedsSynchronousAnimateInput() override;
63 void UpdateRootLayerState(const gfx::ScrollOffset& total_scroll_offset, 62 void UpdateRootLayerState(const gfx::ScrollOffset& total_scroll_offset,
64 const gfx::ScrollOffset& max_scroll_offset, 63 const gfx::ScrollOffset& max_scroll_offset,
65 const gfx::SizeF& scrollable_size, 64 const gfx::SizeF& scrollable_size,
66 float page_scale_factor, 65 float page_scale_factor,
67 float min_page_scale_factor, 66 float min_page_scale_factor,
68 float max_page_scale_factor) override; 67 float max_page_scale_factor) override;
69 68
70 // SynchronousCompositorExternalBeginFrameSourceClient overrides. 69 // SynchronousCompositorExternalBeginFrameSourceClient overrides.
71 void OnNeedsBeginFramesChange(bool needs_begin_frames) override; 70 void OnNeedsBeginFramesChange(bool needs_begin_frames) override;
72 71
73 // SynchronousCompositorOutputSurfaceClient overrides. 72 // SynchronousCompositorOutputSurfaceClient overrides.
74 void Invalidate() override; 73 void Invalidate() override;
75 void SwapBuffers(uint32_t output_surface_id, 74 void SwapBuffers(uint32_t output_surface_id,
76 cc::CompositorFrame* frame) override; 75 cc::CompositorFrame* frame) override;
77 76
77 void SetOutputSurface(SynchronousCompositorOutputSurface* output_surface);
78 void OnMessageReceived(const IPC::Message& message); 78 void OnMessageReceived(const IPC::Message& message);
79 bool Send(IPC::Message* message); 79 bool Send(IPC::Message* message);
80 void DidOverscroll(const DidOverscrollParams& did_overscroll_params); 80 void DidOverscroll(const DidOverscrollParams& did_overscroll_params);
81 81
82 private: 82 private:
83 struct SharedMemoryWithSize; 83 struct SharedMemoryWithSize;
84 84
85 void ProcessCommonParams( 85 void ProcessCommonParams(
86 const SyncCompositorCommonBrowserParams& common_params); 86 const SyncCompositorCommonBrowserParams& common_params);
87 void PopulateCommonParams(SyncCompositorCommonRendererParams* params) const; 87 void PopulateCommonParams(SyncCompositorCommonRendererParams* params) const;
(...skipping 30 matching lines...) Expand all
118 void SwapBuffersSw(cc::CompositorFrame* frame); 118 void SwapBuffersSw(cc::CompositorFrame* frame);
119 void SendDemandDrawSwReply(bool success, 119 void SendDemandDrawSwReply(bool success,
120 cc::CompositorFrame* frame, 120 cc::CompositorFrame* frame,
121 IPC::Message* reply_message); 121 IPC::Message* reply_message);
122 void DidActivatePendingTree(); 122 void DidActivatePendingTree();
123 void DeliverMessages(); 123 void DeliverMessages();
124 void SendAsyncRendererStateIfNeeded(); 124 void SendAsyncRendererStateIfNeeded();
125 125
126 const int routing_id_; 126 const int routing_id_;
127 IPC::Sender* const sender_; 127 IPC::Sender* const sender_;
128 SynchronousCompositorOutputSurface* const output_surface_;
129 SynchronousCompositorExternalBeginFrameSource* const begin_frame_source_; 128 SynchronousCompositorExternalBeginFrameSource* const begin_frame_source_;
130 ui::SynchronousInputHandlerProxy* const input_handler_proxy_; 129 ui::SynchronousInputHandlerProxy* const input_handler_proxy_;
131 InputHandlerManagerClient::Handler* const input_handler_; 130 InputHandlerManagerClient::Handler* const input_handler_;
132 const bool use_in_process_zero_copy_software_draw_; 131 const bool use_in_process_zero_copy_software_draw_;
132 SynchronousCompositorOutputSurface* output_surface_;
133 bool inside_receive_; 133 bool inside_receive_;
134 IPC::Message* hardware_draw_reply_; 134 IPC::Message* hardware_draw_reply_;
135 IPC::Message* software_draw_reply_; 135 IPC::Message* software_draw_reply_;
136 136
137 // From browser. 137 // From browser.
138 size_t bytes_limit_; 138 size_t bytes_limit_;
139 scoped_ptr<SharedMemoryWithSize> software_draw_shm_; 139 scoped_ptr<SharedMemoryWithSize> software_draw_shm_;
140 140
141 // To browser. 141 // To browser.
142 mutable uint32_t version_; // Mustable so PopulateCommonParams can be const. 142 mutable uint32_t version_; // Mustable so PopulateCommonParams can be const.
143 gfx::ScrollOffset total_scroll_offset_; // Modified by both. 143 gfx::ScrollOffset total_scroll_offset_; // Modified by both.
144 gfx::ScrollOffset max_scroll_offset_; 144 gfx::ScrollOffset max_scroll_offset_;
145 gfx::SizeF scrollable_size_; 145 gfx::SizeF scrollable_size_;
146 float page_scale_factor_; 146 float page_scale_factor_;
147 float min_page_scale_factor_; 147 float min_page_scale_factor_;
148 float max_page_scale_factor_; 148 float max_page_scale_factor_;
149 bool need_animate_scroll_; 149 bool need_animate_scroll_;
150 uint32_t need_invalidate_count_; 150 uint32_t need_invalidate_count_;
151 bool need_begin_frame_; 151 bool need_begin_frame_;
152 uint32_t did_activate_pending_tree_count_; 152 uint32_t did_activate_pending_tree_count_;
153 153
154 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorProxy); 154 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorProxy);
155 }; 155 };
156 156
157 } // namespace content 157 } // namespace content
158 158
159 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_ 159 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_PROXY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698