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

Side by Side Diff: cc/layers/texture_layer.cc

Issue 17114008: cc: Remove cc::Thread and cc::ThreadImpl. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rm-thread: clarify threads in UpdateBackgroundAnimateTicking, test asserts Created 7 years, 6 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 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 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/layers/texture_layer.h" 5 #include "cc/layers/texture_layer.h"
6 6
7 #include "cc/base/thread.h" 7 #include "base/location.h"
8 #include "base/single_thread_task_runner.h"
8 #include "cc/layers/texture_layer_client.h" 9 #include "cc/layers/texture_layer_client.h"
9 #include "cc/layers/texture_layer_impl.h" 10 #include "cc/layers/texture_layer_impl.h"
10 #include "cc/trees/layer_tree_host.h" 11 #include "cc/trees/layer_tree_host.h"
11 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" 12 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
12 13
13 namespace cc { 14 namespace cc {
14 15
15 namespace { 16 namespace {
16 17
17 void RunCallback( 18 void RunCallback(
18 const TextureMailbox::ReleaseCallback& callback, 19 const TextureMailbox::ReleaseCallback& callback,
19 unsigned sync_point, 20 unsigned sync_point,
20 bool lost_resource) { 21 bool lost_resource) {
21 callback.Run(sync_point, lost_resource); 22 callback.Run(sync_point, lost_resource);
22 } 23 }
23 24
24 void PostCallbackToThread( 25 void PostCallbackToThread(
25 Thread* thread, 26 scoped_refptr<base::SingleThreadTaskRunner> task_runner,
26 const TextureMailbox::ReleaseCallback& callback, 27 const TextureMailbox::ReleaseCallback& callback,
27 unsigned sync_point, 28 unsigned sync_point,
28 bool lost_resource) { 29 bool lost_resource) {
29 if (!callback.is_null()) { 30 if (!callback.is_null()) {
30 thread->PostTask(base::Bind(&RunCallback, callback, 31 task_runner->PostTask(FROM_HERE,
31 sync_point, lost_resource)); 32 base::Bind(&RunCallback, callback,
33 sync_point, lost_resource));
32 } 34 }
33 } 35 }
34 36
35 } // namespace 37 } // namespace
36 38
37 scoped_refptr<TextureLayer> TextureLayer::Create(TextureLayerClient* client) { 39 scoped_refptr<TextureLayer> TextureLayer::Create(TextureLayerClient* client) {
38 return scoped_refptr<TextureLayer>(new TextureLayer(client, false)); 40 return scoped_refptr<TextureLayer>(new TextureLayer(client, false));
39 } 41 }
40 42
41 scoped_refptr<TextureLayer> TextureLayer::CreateForMailbox( 43 scoped_refptr<TextureLayer> TextureLayer::CreateForMailbox(
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 void TextureLayer::PushPropertiesTo(LayerImpl* layer) { 209 void TextureLayer::PushPropertiesTo(LayerImpl* layer) {
208 Layer::PushPropertiesTo(layer); 210 Layer::PushPropertiesTo(layer);
209 211
210 TextureLayerImpl* texture_layer = static_cast<TextureLayerImpl*>(layer); 212 TextureLayerImpl* texture_layer = static_cast<TextureLayerImpl*>(layer);
211 texture_layer->set_flipped(flipped_); 213 texture_layer->set_flipped(flipped_);
212 texture_layer->set_uv_top_left(uv_top_left_); 214 texture_layer->set_uv_top_left(uv_top_left_);
213 texture_layer->set_uv_bottom_right(uv_bottom_right_); 215 texture_layer->set_uv_bottom_right(uv_bottom_right_);
214 texture_layer->set_vertex_opacity(vertex_opacity_); 216 texture_layer->set_vertex_opacity(vertex_opacity_);
215 texture_layer->set_premultiplied_alpha(premultiplied_alpha_); 217 texture_layer->set_premultiplied_alpha(premultiplied_alpha_);
216 if (uses_mailbox_ && own_mailbox_) { 218 if (uses_mailbox_ && own_mailbox_) {
217 Thread* main_thread = layer_tree_host()->proxy()->MainThread(); 219 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner =
220 layer_tree_host()->proxy()->MainThreadTaskRunner();
218 TextureMailbox::ReleaseCallback callback = base::Bind( 221 TextureMailbox::ReleaseCallback callback = base::Bind(
219 &PostCallbackToThread, main_thread, texture_mailbox_.callback()); 222 &PostCallbackToThread,
223 main_thread_task_runner,
224 texture_mailbox_.callback());
220 texture_layer->SetTextureMailbox( 225 texture_layer->SetTextureMailbox(
221 texture_mailbox_.CopyWithNewCallback(callback)); 226 texture_mailbox_.CopyWithNewCallback(callback));
222 own_mailbox_ = false; 227 own_mailbox_ = false;
223 } else { 228 } else {
224 texture_layer->set_texture_id(texture_id_); 229 texture_layer->set_texture_id(texture_id_);
225 } 230 }
226 content_committed_ = DrawsContent(); 231 content_committed_ = DrawsContent();
227 } 232 }
228 233
229 bool TextureLayer::BlocksPendingCommit() const { 234 bool TextureLayer::BlocksPendingCommit() const {
230 // Double-buffered texture layers need to be blocked until they can be made 235 // Double-buffered texture layers need to be blocked until they can be made
231 // triple-buffered. Single-buffered layers already prevent draws, so 236 // triple-buffered. Single-buffered layers already prevent draws, so
232 // can block too for simplicity. 237 // can block too for simplicity.
233 return DrawsContent(); 238 return DrawsContent();
234 } 239 }
235 240
236 bool TextureLayer::CanClipSelf() const { 241 bool TextureLayer::CanClipSelf() const {
237 return true; 242 return true;
238 } 243 }
239 244
240 } // namespace cc 245 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698