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

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

Issue 151093005: cc: Update Main RendererCapabilities on DeferredInitialize (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Release Mailbox if UsingSharedMemoryResources changed in TextureLayer::Update Created 6 years, 10 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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/synchronization/lock.h" 10 #include "base/synchronization/lock.h"
(...skipping 19 matching lines...) Expand all
30 client_(client), 30 client_(client),
31 uses_mailbox_(uses_mailbox), 31 uses_mailbox_(uses_mailbox),
32 flipped_(true), 32 flipped_(true),
33 uv_top_left_(0.f, 0.f), 33 uv_top_left_(0.f, 0.f),
34 uv_bottom_right_(1.f, 1.f), 34 uv_bottom_right_(1.f, 1.f),
35 premultiplied_alpha_(true), 35 premultiplied_alpha_(true),
36 blend_background_color_(false), 36 blend_background_color_(false),
37 rate_limit_context_(false), 37 rate_limit_context_(false),
38 content_committed_(false), 38 content_committed_(false),
39 texture_id_(0), 39 texture_id_(0),
40 needs_set_mailbox_(false) { 40 needs_set_mailbox_(false),
41 did_use_shared_memory_resources_(false) {
41 vertex_opacity_[0] = 1.0f; 42 vertex_opacity_[0] = 1.0f;
42 vertex_opacity_[1] = 1.0f; 43 vertex_opacity_[1] = 1.0f;
43 vertex_opacity_[2] = 1.0f; 44 vertex_opacity_[2] = 1.0f;
44 vertex_opacity_[3] = 1.0f; 45 vertex_opacity_[3] = 1.0f;
45 } 46 }
46 47
47 TextureLayer::~TextureLayer() { 48 TextureLayer::~TextureLayer() {
48 } 49 }
49 50
50 void TextureLayer::ClearClient() { 51 void TextureLayer::ClearClient() {
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 215
215 bool TextureLayer::DrawsContent() const { 216 bool TextureLayer::DrawsContent() const {
216 return (client_ || texture_id_ || holder_ref_) && Layer::DrawsContent(); 217 return (client_ || texture_id_ || holder_ref_) && Layer::DrawsContent();
217 } 218 }
218 219
219 bool TextureLayer::Update(ResourceUpdateQueue* queue, 220 bool TextureLayer::Update(ResourceUpdateQueue* queue,
220 const OcclusionTracker* occlusion) { 221 const OcclusionTracker* occlusion) {
221 bool updated = Layer::Update(queue, occlusion); 222 bool updated = Layer::Update(queue, occlusion);
222 if (client_) { 223 if (client_) {
223 if (uses_mailbox_) { 224 if (uses_mailbox_) {
225 bool use_shared_memory_resources =
226 layer_tree_host()->UsingSharedMemoryResources();
227 if (did_use_shared_memory_resources_ != use_shared_memory_resources) {
228 holder_ref_.reset();
danakj 2014/02/14 19:38:50 Now that we're here, I wonder.. the call to Prepar
boliu 2014/02/14 22:03:08 Good point...removed all this code and just make t
229 }
230 did_use_shared_memory_resources_ = use_shared_memory_resources;
231
224 TextureMailbox mailbox; 232 TextureMailbox mailbox;
225 scoped_ptr<SingleReleaseCallback> release_callback; 233 scoped_ptr<SingleReleaseCallback> release_callback;
226 if (client_->PrepareTextureMailbox( 234 if (client_->PrepareTextureMailbox(
227 &mailbox, 235 &mailbox,
228 &release_callback, 236 &release_callback,
229 layer_tree_host()->UsingSharedMemoryResources())) { 237 layer_tree_host()->UsingSharedMemoryResources())) {
230 // Already within a commit, no need to do another one immediately. 238 // Already within a commit, no need to do another one immediately.
231 SetTextureMailboxInternal( 239 SetTextureMailboxInternal(
232 mailbox, 240 mailbox,
233 release_callback.Pass(), 241 release_callback.Pass(),
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 359
352 void TextureLayer::TextureMailboxHolder::ReturnAndReleaseOnImplThread( 360 void TextureLayer::TextureMailboxHolder::ReturnAndReleaseOnImplThread(
353 uint32 sync_point, 361 uint32 sync_point,
354 bool is_lost) { 362 bool is_lost) {
355 Return(sync_point, is_lost); 363 Return(sync_point, is_lost);
356 message_loop_->PostTask( 364 message_loop_->PostTask(
357 FROM_HERE, base::Bind(&TextureMailboxHolder::InternalRelease, this)); 365 FROM_HERE, base::Bind(&TextureMailboxHolder::InternalRelease, this));
358 } 366 }
359 367
360 } // namespace cc 368 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698