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

Side by Side Diff: cc/trees/layer_tree_host.h

Issue 23621021: (not for review yet) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « base/memory/scoped_ptr.h ('k') | cc/trees/layer_tree_host.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 CC_TREES_LAYER_TREE_HOST_H_ 5 #ifndef CC_TREES_LAYER_TREE_HOST_H_
6 #define CC_TREES_LAYER_TREE_HOST_H_ 6 #define CC_TREES_LAYER_TREE_HOST_H_
7 7
8 #include <limits> 8 #include <limits>
9 #include <list> 9 #include <list>
10 #include <vector> 10 #include <vector>
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 int max_texture_size; 81 int max_texture_size;
82 bool avoid_pow2_textures; 82 bool avoid_pow2_textures;
83 bool using_map_image; 83 bool using_map_image;
84 bool using_shared_memory_resources; 84 bool using_shared_memory_resources;
85 }; 85 };
86 86
87 struct CC_EXPORT UIResourceRequest { 87 struct CC_EXPORT UIResourceRequest {
88 enum UIResourceRequestType { 88 enum UIResourceRequestType {
89 UIResourceCreate, 89 UIResourceCreate,
90 UIResourceDelete, 90 UIResourceDelete,
91 UIResourceEvictionAck,
91 UIResourceInvalidRequest 92 UIResourceInvalidRequest
92 }; 93 };
93 94
94 UIResourceRequest(); 95 UIResourceRequest();
95 ~UIResourceRequest(); 96 ~UIResourceRequest();
96 UIResourceRequestType type; 97 UIResourceRequestType type;
97 UIResourceId id; 98 UIResourceId id;
98 scoped_refptr<UIResourceBitmap> bitmap; 99 scoped_refptr<UIResourceBitmap> bitmap;
100 uint64 ack;
99 }; 101 };
100 102
101 class CC_EXPORT LayerTreeHost : NON_EXPORTED_BASE(public RateLimiterClient) { 103 class CC_EXPORT LayerTreeHost : NON_EXPORTED_BASE(public RateLimiterClient) {
102 public: 104 public:
103 static scoped_ptr<LayerTreeHost> Create( 105 static scoped_ptr<LayerTreeHost> Create(
104 LayerTreeHostClient* client, 106 LayerTreeHostClient* client,
105 const LayerTreeSettings& settings, 107 const LayerTreeSettings& settings,
106 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner); 108 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner);
107 virtual ~LayerTreeHost(); 109 virtual ~LayerTreeHost();
108 110
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 // CreateUIResource creates a resource given a bitmap. The bitmap is 278 // CreateUIResource creates a resource given a bitmap. The bitmap is
277 // generated via an interface function, which is called when initializing the 279 // generated via an interface function, which is called when initializing the
278 // resource and when the resource has been lost (due to lost context). The 280 // resource and when the resource has been lost (due to lost context). The
279 // parameter of the interface is a single boolean, which indicates whether the 281 // parameter of the interface is a single boolean, which indicates whether the
280 // resource has been lost or not. CreateUIResource returns an Id of the 282 // resource has been lost or not. CreateUIResource returns an Id of the
281 // resource, which is always positive. 283 // resource, which is always positive.
282 virtual UIResourceId CreateUIResource(UIResourceClient* client); 284 virtual UIResourceId CreateUIResource(UIResourceClient* client);
283 // Deletes a UI resource. May safely be called more than once. 285 // Deletes a UI resource. May safely be called more than once.
284 virtual void DeleteUIResource(UIResourceId id); 286 virtual void DeleteUIResource(UIResourceId id);
285 287
288 // Record the eviction count sent by the LayerTreeHostImpl at BeginFrame.
289 // If |ui_resource_eviction_count| value is more recent than the current
290 // value of |ui_resource_eviction_count_last_acked_|, then add the recreation
291 // of all UI resources to the UIResourceRequestQueue.
292 void SetUIResourceEvictionCountToAck(uint64 ui_resource_eviction_count);
293
286 bool UsingSharedMemoryResources(); 294 bool UsingSharedMemoryResources();
287 int id() const { return tree_id_; } 295 int id() const { return tree_id_; }
288 296
289 protected: 297 protected:
290 LayerTreeHost(LayerTreeHostClient* client, const LayerTreeSettings& settings); 298 LayerTreeHost(LayerTreeHostClient* client, const LayerTreeSettings& settings);
291 bool Initialize(scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner); 299 bool Initialize(scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner);
292 bool InitializeForTesting(scoped_ptr<Proxy> proxy_for_testing); 300 bool InitializeForTesting(scoped_ptr<Proxy> proxy_for_testing);
293 301
294 private: 302 private:
295 bool InitializeProxy(scoped_ptr<Proxy> proxy); 303 bool InitializeProxy(scoped_ptr<Proxy> proxy);
(...skipping 24 matching lines...) Expand all
320 bool AnimateLayersRecursive(Layer* current, base::TimeTicks time); 328 bool AnimateLayersRecursive(Layer* current, base::TimeTicks time);
321 329
322 void RecreateUIResources(bool resource_lost); 330 void RecreateUIResources(bool resource_lost);
323 331
324 typedef base::hash_map<UIResourceId, UIResourceClient*> UIResourceClientMap; 332 typedef base::hash_map<UIResourceId, UIResourceClient*> UIResourceClientMap;
325 UIResourceClientMap ui_resource_client_map_; 333 UIResourceClientMap ui_resource_client_map_;
326 int next_ui_resource_id_; 334 int next_ui_resource_id_;
327 335
328 typedef std::list<UIResourceRequest> UIResourceRequestQueue; 336 typedef std::list<UIResourceRequest> UIResourceRequestQueue;
329 UIResourceRequestQueue ui_resource_request_queue_; 337 UIResourceRequestQueue ui_resource_request_queue_;
338 uint64 ui_resource_eviction_count_last_acked_;
330 339
331 void CalculateLCDTextMetricsCallback(Layer* layer); 340 void CalculateLCDTextMetricsCallback(Layer* layer);
332 341
333 bool animating_; 342 bool animating_;
334 bool needs_full_tree_sync_; 343 bool needs_full_tree_sync_;
335 bool needs_filter_context_; 344 bool needs_filter_context_;
336 345
337 base::CancelableClosure prepaint_callback_; 346 base::CancelableClosure prepaint_callback_;
338 347
339 LayerTreeHostClient* client_; 348 LayerTreeHostClient* client_;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 }; 418 };
410 LCDTextMetrics lcd_text_metrics_; 419 LCDTextMetrics lcd_text_metrics_;
411 int tree_id_; 420 int tree_id_;
412 421
413 DISALLOW_COPY_AND_ASSIGN(LayerTreeHost); 422 DISALLOW_COPY_AND_ASSIGN(LayerTreeHost);
414 }; 423 };
415 424
416 } // namespace cc 425 } // namespace cc
417 426
418 #endif // CC_TREES_LAYER_TREE_HOST_H_ 427 #endif // CC_TREES_LAYER_TREE_HOST_H_
OLDNEW
« no previous file with comments | « base/memory/scoped_ptr.h ('k') | cc/trees/layer_tree_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698