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

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

Issue 2848223003: Enforce constant size and device scale factor for surfaces (Closed)
Patch Set: Notify CFSSClient when a frame is rejected Created 3 years, 7 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_FRAME_SINK_H_ 5 #ifndef CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_FRAME_SINK_H_
6 #define CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_FRAME_SINK_H_ 6 #define CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_FRAME_SINK_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 const gfx::Transform& transform_for_tile_priority); 94 const gfx::Transform& transform_for_tile_priority);
95 void DemandDrawSw(SkCanvas* canvas); 95 void DemandDrawSw(SkCanvas* canvas);
96 96
97 // CompositorFrameSinkSupportClient implementation. 97 // CompositorFrameSinkSupportClient implementation.
98 void DidReceiveCompositorFrameAck( 98 void DidReceiveCompositorFrameAck(
99 const cc::ReturnedResourceArray& resources) override; 99 const cc::ReturnedResourceArray& resources) override;
100 void OnBeginFrame(const cc::BeginFrameArgs& args) override; 100 void OnBeginFrame(const cc::BeginFrameArgs& args) override;
101 void ReclaimResources(const cc::ReturnedResourceArray& resources) override; 101 void ReclaimResources(const cc::ReturnedResourceArray& resources) override;
102 void WillDrawSurface(const cc::LocalSurfaceId& local_surface_id, 102 void WillDrawSurface(const cc::LocalSurfaceId& local_surface_id,
103 const gfx::Rect& damage_rect) override; 103 const gfx::Rect& damage_rect) override;
104 void DidRejectCompositorFrame() override;
104 105
105 private: 106 private:
106 class SoftwareOutputSurface; 107 class SoftwareOutputSurface;
107 108
108 void InvokeComposite(const gfx::Transform& transform, 109 void InvokeComposite(const gfx::Transform& transform,
109 const gfx::Rect& viewport); 110 const gfx::Rect& viewport);
110 bool Send(IPC::Message* message); 111 bool Send(IPC::Message* message);
111 void DidActivatePendingTree(); 112 void DidActivatePendingTree();
112 void DeliverMessages(); 113 void DeliverMessages();
113 bool CalledOnValidThread() const; 114 bool CalledOnValidThread() const;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 const cc::RenderPassList& render_passes) override {} 149 const cc::RenderPassList& render_passes) override {}
149 void DisplayDidDrawAndSwap() override {} 150 void DisplayDidDrawAndSwap() override {}
150 }; 151 };
151 152
152 // TODO(danakj): These don't to be stored in unique_ptrs when OutputSurface 153 // TODO(danakj): These don't to be stored in unique_ptrs when OutputSurface
153 // is owned/destroyed on the compositor thread. 154 // is owned/destroyed on the compositor thread.
154 std::unique_ptr<cc::SurfaceManager> surface_manager_; 155 std::unique_ptr<cc::SurfaceManager> surface_manager_;
155 std::unique_ptr<cc::LocalSurfaceIdAllocator> local_surface_id_allocator_; 156 std::unique_ptr<cc::LocalSurfaceIdAllocator> local_surface_id_allocator_;
156 cc::LocalSurfaceId child_local_surface_id_; 157 cc::LocalSurfaceId child_local_surface_id_;
157 cc::LocalSurfaceId root_local_surface_id_; 158 cc::LocalSurfaceId root_local_surface_id_;
159 gfx::Size child_size_;
160 gfx::Size display_size_;
161 float device_scale_factor_;
158 // Uses surface_manager_. 162 // Uses surface_manager_.
159 std::unique_ptr<cc::CompositorFrameSinkSupport> root_support_; 163 std::unique_ptr<cc::CompositorFrameSinkSupport> root_support_;
160 // Uses surface_manager_. 164 // Uses surface_manager_.
161 std::unique_ptr<cc::CompositorFrameSinkSupport> child_support_; 165 std::unique_ptr<cc::CompositorFrameSinkSupport> child_support_;
162 StubDisplayClient display_client_; 166 StubDisplayClient display_client_;
163 // Uses surface_manager_. 167 // Uses surface_manager_.
164 std::unique_ptr<cc::Display> display_; 168 std::unique_ptr<cc::Display> display_;
165 // Owned by |display_|. 169 // Owned by |display_|.
166 SoftwareOutputSurface* software_output_surface_ = nullptr; 170 SoftwareOutputSurface* software_output_surface_ = nullptr;
167 std::unique_ptr<cc::BeginFrameSource> begin_frame_source_; 171 std::unique_ptr<cc::BeginFrameSource> begin_frame_source_;
168 172
169 gfx::Rect sw_viewport_for_current_draw_; 173 gfx::Rect sw_viewport_for_current_draw_;
170 174
171 base::ThreadChecker thread_checker_; 175 base::ThreadChecker thread_checker_;
172 176
173 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorFrameSink); 177 DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorFrameSink);
174 }; 178 };
175 179
176 } // namespace content 180 } // namespace content
177 181
178 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_FRAME_SINK_H_ 182 #endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_FRAME_SINK_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698