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

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

Issue 2697353003: cc: Make ScopedResource constructor public, use MakeUnique to construct (Closed)
Patch Set: construct: . Created 3 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
« no previous file with comments | « cc/layers/heads_up_display_layer_impl.cc ('k') | cc/output/direct_renderer.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 #include "cc/layers/texture_layer_impl.h" 5 #include "cc/layers/texture_layer_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <vector> 10 #include <vector>
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 if (external_texture_resource_) 99 if (external_texture_resource_)
100 own_mailbox_ = false; 100 own_mailbox_ = false;
101 } 101 }
102 102
103 if (!valid_texture_copy_ && draw_mode == DRAW_MODE_HARDWARE && 103 if (!valid_texture_copy_ && draw_mode == DRAW_MODE_HARDWARE &&
104 texture_mailbox_.IsSharedMemory()) { 104 texture_mailbox_.IsSharedMemory()) {
105 DCHECK(!external_texture_resource_); 105 DCHECK(!external_texture_resource_);
106 // Have to upload a copy to a texture for it to be used in a 106 // Have to upload a copy to a texture for it to be used in a
107 // hardware draw. 107 // hardware draw.
108 if (!texture_copy_) 108 if (!texture_copy_)
109 texture_copy_ = ScopedResource::Create(resource_provider); 109 texture_copy_ = base::MakeUnique<ScopedResource>(resource_provider);
110 if (texture_copy_->size() != texture_mailbox_.size_in_pixels() || 110 if (texture_copy_->size() != texture_mailbox_.size_in_pixels() ||
111 resource_provider->InUseByConsumer(texture_copy_->id())) 111 resource_provider->InUseByConsumer(texture_copy_->id()))
112 texture_copy_->Free(); 112 texture_copy_->Free();
113 113
114 if (!texture_copy_->id()) { 114 if (!texture_copy_->id()) {
115 texture_copy_->Allocate(texture_mailbox_.size_in_pixels(), 115 texture_copy_->Allocate(texture_mailbox_.size_in_pixels(),
116 ResourceProvider::TEXTURE_HINT_IMMUTABLE, 116 ResourceProvider::TEXTURE_HINT_IMMUTABLE,
117 resource_provider->best_texture_format(), 117 resource_provider->best_texture_format(),
118 gfx::ColorSpace()); 118 gfx::ColorSpace());
119 } 119 }
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 } else if (external_texture_resource_) { 263 } else if (external_texture_resource_) {
264 DCHECK(!own_mailbox_); 264 DCHECK(!own_mailbox_);
265 ResourceProvider* resource_provider = 265 ResourceProvider* resource_provider =
266 layer_tree_impl()->resource_provider(); 266 layer_tree_impl()->resource_provider();
267 resource_provider->DeleteResource(external_texture_resource_); 267 resource_provider->DeleteResource(external_texture_resource_);
268 external_texture_resource_ = 0; 268 external_texture_resource_ = 0;
269 } 269 }
270 } 270 }
271 271
272 } // namespace cc 272 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/heads_up_display_layer_impl.cc ('k') | cc/output/direct_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698