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

Side by Side Diff: content/browser/android/synchronous_compositor_host.h

Issue 1541203003: IPC-based sync compositor software draw optimization (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: bring back zero-ing 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_BROWSER_ANDROID_SYNCHRONOUS_COMPOSITOR_HOST_H_ 5 #ifndef CONTENT_BROWSER_ANDROID_SYNCHRONOUS_COMPOSITOR_HOST_H_
6 #define CONTENT_BROWSER_ANDROID_SYNCHRONOUS_COMPOSITOR_HOST_H_ 6 #define CONTENT_BROWSER_ANDROID_SYNCHRONOUS_COMPOSITOR_HOST_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 void OnComputeScroll(base::TimeTicks animation_time) override; 46 void OnComputeScroll(base::TimeTicks animation_time) override;
47 47
48 // SynchronousCompositorBase overrides. 48 // SynchronousCompositorBase overrides.
49 InputEventAckState HandleInputEvent( 49 InputEventAckState HandleInputEvent(
50 const blink::WebInputEvent& input_event) override; 50 const blink::WebInputEvent& input_event) override;
51 void BeginFrame(const cc::BeginFrameArgs& args) override; 51 void BeginFrame(const cc::BeginFrameArgs& args) override;
52 bool OnMessageReceived(const IPC::Message& message) override; 52 bool OnMessageReceived(const IPC::Message& message) override;
53 void DidBecomeCurrent() override; 53 void DidBecomeCurrent() override;
54 54
55 private: 55 private:
56 class ScopedSendZeroMemory;
57 struct SharedMemoryWithSize;
58 friend class ScopedSetZeroMemory;
56 friend class SynchronousCompositorBase; 59 friend class SynchronousCompositorBase;
60
57 SynchronousCompositorHost(RenderWidgetHostViewAndroid* rwhva, 61 SynchronousCompositorHost(RenderWidgetHostViewAndroid* rwhva,
58 SynchronousCompositorClient* client); 62 SynchronousCompositorClient* client);
59 void PopulateCommonParams(SyncCompositorCommonBrowserParams* params); 63 void PopulateCommonParams(SyncCompositorCommonBrowserParams* params);
60 void ProcessCommonParams(const SyncCompositorCommonRendererParams& params); 64 void ProcessCommonParams(const SyncCompositorCommonRendererParams& params);
61 void UpdateNeedsBeginFrames(); 65 void UpdateNeedsBeginFrames();
62 void UpdateFrameMetaData(const cc::CompositorFrameMetadata& frame_metadata); 66 void UpdateFrameMetaData(const cc::CompositorFrameMetadata& frame_metadata);
63 void OnOverScroll(const SyncCompositorCommonRendererParams& params, 67 void OnOverScroll(const SyncCompositorCommonRendererParams& params,
64 const DidOverscrollParams& over_scroll_params); 68 const DidOverscrollParams& over_scroll_params);
65 void SendAsyncCompositorStateIfNeeded(); 69 void SendAsyncCompositorStateIfNeeded();
66 void UpdateStateTask(); 70 void UpdateStateTask();
71 void SetSoftwareDrawSharedMemoryIfNeeded(size_t stride, size_t buffer_size);
72 void SendZeroMemory();
67 73
68 RenderWidgetHostViewAndroid* const rwhva_; 74 RenderWidgetHostViewAndroid* const rwhva_;
69 SynchronousCompositorClient* const client_; 75 SynchronousCompositorClient* const client_;
70 const scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_; 76 const scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
71 const int routing_id_; 77 const int routing_id_;
72 IPC::Sender* const sender_; 78 IPC::Sender* const sender_;
73 79
74 bool is_active_; 80 bool is_active_;
75 size_t bytes_limit_; 81 size_t bytes_limit_;
76 cc::ReturnedResourceArray returned_resources_; 82 cc::ReturnedResourceArray returned_resources_;
83 scoped_ptr<SharedMemoryWithSize> software_draw_shm_;
77 84
78 // Updated by both renderer and browser. 85 // Updated by both renderer and browser.
79 gfx::ScrollOffset root_scroll_offset_; 86 gfx::ScrollOffset root_scroll_offset_;
80 bool root_scroll_offset_updated_by_browser_; 87 bool root_scroll_offset_updated_by_browser_;
81 88
82 // From renderer. 89 // From renderer.
83 uint32_t renderer_param_version_; 90 uint32_t renderer_param_version_;
84 bool need_animate_scroll_; 91 bool need_animate_scroll_;
85 bool need_invalidate_; 92 bool need_invalidate_;
86 bool need_begin_frame_; 93 bool need_begin_frame_;
87 bool did_activate_pending_tree_; 94 bool did_activate_pending_tree_;
88 95
89 base::WeakPtrFactory<SynchronousCompositorHost> weak_ptr_factory_; 96 base::WeakPtrFactory<SynchronousCompositorHost> weak_ptr_factory_;
90 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorHost); 97 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorHost);
91 }; 98 };
92 99
93 } // namespace content 100 } // namespace content
94 101
95 #endif // CONTENT_BROWSER_ANDROID_SYNCHRONOUS_COMPOSITOR_HOST_H_ 102 #endif // CONTENT_BROWSER_ANDROID_SYNCHRONOUS_COMPOSITOR_HOST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698