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

Side by Side Diff: cc/layer_tree_host.cc

Issue 12566033: cc: Chromify RateLimiter (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 | Annotate | Revision Log
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 #include "cc/layer_tree_host.h" 5 #include "cc/layer_tree_host.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 LayerTreeHost::~LayerTreeHost() { 116 LayerTreeHost::~LayerTreeHost() {
117 if (root_layer_) 117 if (root_layer_)
118 root_layer_->SetLayerTreeHost(NULL); 118 root_layer_->SetLayerTreeHost(NULL);
119 DCHECK(proxy_); 119 DCHECK(proxy_);
120 DCHECK(proxy_->IsMainThread()); 120 DCHECK(proxy_->IsMainThread());
121 TRACE_EVENT0("cc", "LayerTreeHost::~LayerTreeHost"); 121 TRACE_EVENT0("cc", "LayerTreeHost::~LayerTreeHost");
122 proxy_->Stop(); 122 proxy_->Stop();
123 s_num_layer_tree_instances--; 123 s_num_layer_tree_instances--;
124 RateLimiterMap::iterator it = rate_limiters_.begin(); 124 RateLimiterMap::iterator it = rate_limiters_.begin();
125 if (it != rate_limiters_.end()) 125 if (it != rate_limiters_.end())
126 it->second->stop(); 126 it->second->Stop();
127 127
128 if (root_layer_) { 128 if (root_layer_) {
129 // The layer tree must be destroyed before the layer tree host. We've 129 // The layer tree must be destroyed before the layer tree host. We've
130 // made a contract with our animation controllers that the registrar 130 // made a contract with our animation controllers that the registrar
131 // will outlive them, and we must make good. 131 // will outlive them, and we must make good.
132 root_layer_ = NULL; 132 root_layer_ = NULL;
133 } 133 }
134 } 134 }
135 135
136 void LayerTreeHost::SetSurfaceReady() { 136 void LayerTreeHost::SetSurfaceReady() {
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
817 impl_transform_ = transform; 817 impl_transform_ = transform;
818 } 818 }
819 819
820 void LayerTreeHost::StartRateLimiter(WebKit::WebGraphicsContext3D* context3d) { 820 void LayerTreeHost::StartRateLimiter(WebKit::WebGraphicsContext3D* context3d) {
821 if (animating_) 821 if (animating_)
822 return; 822 return;
823 823
824 DCHECK(context3d); 824 DCHECK(context3d);
825 RateLimiterMap::iterator it = rate_limiters_.find(context3d); 825 RateLimiterMap::iterator it = rate_limiters_.find(context3d);
826 if (it != rate_limiters_.end()) { 826 if (it != rate_limiters_.end()) {
827 it->second->start(); 827 it->second->Start();
828 } else { 828 } else {
829 scoped_refptr<RateLimiter> rate_limiter = 829 scoped_refptr<RateLimiter> rate_limiter =
830 RateLimiter::create(context3d, this, proxy_->MainThread()); 830 RateLimiter::Create(context3d, this, proxy_->MainThread());
831 rate_limiters_[context3d] = rate_limiter; 831 rate_limiters_[context3d] = rate_limiter;
832 rate_limiter->start(); 832 rate_limiter->Start();
833 } 833 }
834 } 834 }
835 835
836 void LayerTreeHost::StopRateLimiter(WebKit::WebGraphicsContext3D* context3d) { 836 void LayerTreeHost::StopRateLimiter(WebKit::WebGraphicsContext3D* context3d) {
837 RateLimiterMap::iterator it = rate_limiters_.find(context3d); 837 RateLimiterMap::iterator it = rate_limiters_.find(context3d);
838 if (it != rate_limiters_.end()) { 838 if (it != rate_limiters_.end()) {
839 it->second->stop(); 839 it->second->Stop();
840 rate_limiters_.erase(it); 840 rate_limiters_.erase(it);
841 } 841 }
842 } 842 }
843 843
844 void LayerTreeHost::rateLimit() { 844 void LayerTreeHost::RateLimit() {
845 // Force a no-op command on the compositor context, so that any ratelimiting 845 // Force a no-op command on the compositor context, so that any ratelimiting
846 // commands will wait for the compositing context, and therefore for the 846 // commands will wait for the compositing context, and therefore for the
847 // SwapBuffers. 847 // SwapBuffers.
848 proxy_->ForceSerializeOnSwapBuffers(); 848 proxy_->ForceSerializeOnSwapBuffers();
849 } 849 }
850 850
851 bool LayerTreeHost::RequestPartialTextureUpdate() { 851 bool LayerTreeHost::RequestPartialTextureUpdate() {
852 if (partial_texture_update_requests_ >= settings_.maxPartialTextureUpdates) 852 if (partial_texture_update_requests_ >= settings_.maxPartialTextureUpdates)
853 return false; 853 return false;
854 854
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
939 SetAnimationEventsRecursive(events, 939 SetAnimationEventsRecursive(events,
940 layer->children()[child_index].get(), 940 layer->children()[child_index].get(),
941 wall_clock_time); 941 wall_clock_time);
942 } 942 }
943 943
944 skia::RefPtr<SkPicture> LayerTreeHost::CapturePicture() { 944 skia::RefPtr<SkPicture> LayerTreeHost::CapturePicture() {
945 return proxy_->CapturePicture(); 945 return proxy_->CapturePicture();
946 } 946 }
947 947
948 } // namespace cc 948 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_host.h ('k') | cc/rate_limiter.h » ('j') | cc/rate_limiter.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698