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

Side by Side Diff: ui/aura/window.cc

Issue 10910242: Makes copying layers clone external textures. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tweaks Created 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/aura/window.h" 5 #include "ui/aura/window.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 Env::GetInstance()->NotifyWindowInitialized(this); 160 Env::GetInstance()->NotifyWindowInitialized(this);
161 } 161 }
162 162
163 ui::Layer* Window::RecreateLayer() { 163 ui::Layer* Window::RecreateLayer() {
164 // Disconnect the old layer, but don't delete it. 164 // Disconnect the old layer, but don't delete it.
165 ui::Layer* old_layer = AcquireLayer(); 165 ui::Layer* old_layer = AcquireLayer();
166 if (!old_layer) 166 if (!old_layer)
167 return NULL; 167 return NULL;
168 168
169 old_layer->set_delegate(NULL); 169 old_layer->set_delegate(NULL);
170 if (delegate_ && old_layer->external_texture())
171 old_layer->SetExternalTexture(delegate_->CopyTexture());
170 layer_ = new ui::Layer(old_layer->type()); 172 layer_ = new ui::Layer(old_layer->type());
171 layer_owner_.reset(layer_); 173 layer_owner_.reset(layer_);
172 layer_->SetVisible(old_layer->visible()); 174 layer_->SetVisible(old_layer->visible());
173 layer_->set_scale_content(old_layer->scale_content()); 175 layer_->set_scale_content(old_layer->scale_content());
174 layer_->set_delegate(this); 176 layer_->set_delegate(this);
175 UpdateLayerName(name_); 177 UpdateLayerName(name_);
176 layer_->SetFillsBoundsOpaquely(!transparent_); 178 layer_->SetFillsBoundsOpaquely(!transparent_);
177 // Install new layer as a sibling of the old layer, stacked on top of it. 179 // Install new layer as a sibling of the old layer, stacked on top of it.
178 if (old_layer->parent()) { 180 if (old_layer->parent()) {
179 old_layer->parent()->Add(layer_); 181 old_layer->parent()->Add(layer_);
(...skipping 787 matching lines...) Expand 10 before | Expand all | Expand 10 after
967 bool contains_mouse = false; 969 bool contains_mouse = false;
968 if (IsVisible()) { 970 if (IsVisible()) {
969 RootWindow* root_window = GetRootWindow(); 971 RootWindow* root_window = GetRootWindow();
970 contains_mouse = root_window && 972 contains_mouse = root_window &&
971 ContainsPointInRoot(root_window->GetLastMouseLocationInRoot()); 973 ContainsPointInRoot(root_window->GetLastMouseLocationInRoot());
972 } 974 }
973 return contains_mouse; 975 return contains_mouse;
974 } 976 }
975 977
976 } // namespace aura 978 } // namespace aura
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698