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

Side by Side Diff: ui/compositor/compositor.h

Issue 2369793002: WIP: Propagate SurfaceID up window tree hierarchy
Patch Set: Fix input events: EventDispatcher ignores container windows Created 4 years, 2 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 UI_COMPOSITOR_COMPOSITOR_H_ 5 #ifndef UI_COMPOSITOR_COMPOSITOR_H_
6 #define UI_COMPOSITOR_COMPOSITOR_H_ 6 #define UI_COMPOSITOR_COMPOSITOR_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 // Gets the shared bitmap manager for software mode. 129 // Gets the shared bitmap manager for software mode.
130 virtual cc::SharedBitmapManager* GetSharedBitmapManager() = 0; 130 virtual cc::SharedBitmapManager* GetSharedBitmapManager() = 0;
131 131
132 // Gets the GPU memory buffer manager. 132 // Gets the GPU memory buffer manager.
133 virtual gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() = 0; 133 virtual gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() = 0;
134 134
135 // Gets the task graph runner. 135 // Gets the task graph runner.
136 virtual cc::TaskGraphRunner* GetTaskGraphRunner() = 0; 136 virtual cc::TaskGraphRunner* GetTaskGraphRunner() = 0;
137 137
138 // Allocate a new client ID for the display compositor. 138 // Allocate a new client ID for the display compositor.
139 virtual uint32_t AllocateSurfaceClientId() = 0; 139 virtual cc::FrameSinkId AllocateFrameSinkId() = 0;
140 140
141 // Gets the surface manager. 141 // Gets the surface manager.
142 virtual cc::SurfaceManager* GetSurfaceManager() = 0; 142 virtual cc::SurfaceManager* GetSurfaceManager() = 0;
143 143
144 // Inform the display corresponding to this compositor if it is visible. When 144 // Inform the display corresponding to this compositor if it is visible. When
145 // false it does not need to produce any frames. Visibility is reset for each 145 // false it does not need to produce any frames. Visibility is reset for each
146 // call to CreateCompositorFrameSink. 146 // call to CreateCompositorFrameSink.
147 virtual void SetDisplayVisible(ui::Compositor* compositor, bool visible) = 0; 147 virtual void SetDisplayVisible(ui::Compositor* compositor, bool visible) = 0;
148 148
149 // Resize the display corresponding to this compositor to a particular size. 149 // Resize the display corresponding to this compositor to a particular size.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 class COMPOSITOR_EXPORT Compositor 203 class COMPOSITOR_EXPORT Compositor
204 : NON_EXPORTED_BASE(public cc::LayerTreeHostClient), 204 : NON_EXPORTED_BASE(public cc::LayerTreeHostClient),
205 NON_EXPORTED_BASE(public cc::LayerTreeHostSingleThreadClient) { 205 NON_EXPORTED_BASE(public cc::LayerTreeHostSingleThreadClient) {
206 public: 206 public:
207 Compositor(ui::ContextFactory* context_factory, 207 Compositor(ui::ContextFactory* context_factory,
208 scoped_refptr<base::SingleThreadTaskRunner> task_runner); 208 scoped_refptr<base::SingleThreadTaskRunner> task_runner);
209 ~Compositor() override; 209 ~Compositor() override;
210 210
211 ui::ContextFactory* context_factory() { return context_factory_; } 211 ui::ContextFactory* context_factory() { return context_factory_; }
212 212
213 void AddSurfaceClient(uint32_t client_id); 213 void AddFrameSink(const cc::FrameSinkId& frame_sink_id);
214 void RemoveSurfaceClient(uint32_t client_id); 214 void RemoveFrameSink(const cc::FrameSinkId& frame_sink_id);
215 215
216 void SetCompositorFrameSink(std::unique_ptr<cc::CompositorFrameSink> surface); 216 void SetCompositorFrameSink(std::unique_ptr<cc::CompositorFrameSink> surface);
217 217
218 // Schedules a redraw of the layer tree associated with this compositor. 218 // Schedules a redraw of the layer tree associated with this compositor.
219 void ScheduleDraw(); 219 void ScheduleDraw();
220 220
221 // Sets the root of the layer tree drawn by this Compositor. The root layer 221 // Sets the root of the layer tree drawn by this Compositor. The root layer
222 // must have no parent. The compositor's root layer is reset if the root layer 222 // must have no parent. The compositor's root layer is reset if the root layer
223 // is destroyed. NULL can be passed to reset the root layer, in which case the 223 // is destroyed. NULL can be passed to reset the root layer, in which case the
224 // compositor will stop drawing anything. 224 // compositor will stop drawing anything.
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 Layer* root_layer_; 406 Layer* root_layer_;
407 407
408 base::ObserverList<CompositorObserver, true> observer_list_; 408 base::ObserverList<CompositorObserver, true> observer_list_;
409 base::ObserverList<CompositorAnimationObserver> animation_observer_list_; 409 base::ObserverList<CompositorAnimationObserver> animation_observer_list_;
410 410
411 gfx::AcceleratedWidget widget_; 411 gfx::AcceleratedWidget widget_;
412 #if defined(USE_AURA) 412 #if defined(USE_AURA)
413 ui::Window* window_; 413 ui::Window* window_;
414 #endif 414 #endif
415 // A map from child id to parent id. 415 // A map from child id to parent id.
416 std::unordered_map<uint32_t, uint32_t> surface_clients_; 416 std::unordered_map<cc::FrameSinkId, cc::FrameSinkId, cc::FrameSinkIdHash>
417 frame_sinks_;
417 bool widget_valid_; 418 bool widget_valid_;
418 bool compositor_frame_sink_requested_; 419 bool compositor_frame_sink_requested_;
419 std::unique_ptr<cc::SurfaceIdAllocator> surface_id_allocator_; 420 std::unique_ptr<cc::SurfaceIdAllocator> surface_id_allocator_;
420 scoped_refptr<cc::Layer> root_web_layer_; 421 scoped_refptr<cc::Layer> root_web_layer_;
421 std::unique_ptr<cc::LayerTreeHost> host_; 422 std::unique_ptr<cc::LayerTreeHost> host_;
422 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 423 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
423 424
424 // The manager of vsync parameters for this compositor. 425 // The manager of vsync parameters for this compositor.
425 scoped_refptr<CompositorVSyncManager> vsync_manager_; 426 scoped_refptr<CompositorVSyncManager> vsync_manager_;
426 427
(...skipping 10 matching lines...) Expand all
437 gfx::ColorSpace color_space_; 438 gfx::ColorSpace color_space_;
438 439
439 base::WeakPtrFactory<Compositor> weak_ptr_factory_; 440 base::WeakPtrFactory<Compositor> weak_ptr_factory_;
440 441
441 DISALLOW_COPY_AND_ASSIGN(Compositor); 442 DISALLOW_COPY_AND_ASSIGN(Compositor);
442 }; 443 };
443 444
444 } // namespace ui 445 } // namespace ui
445 446
446 #endif // UI_COMPOSITOR_COMPOSITOR_H_ 447 #endif // UI_COMPOSITOR_COMPOSITOR_H_
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp ('k') | ui/compositor/compositor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698