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

Side by Side Diff: ui/gfx/compositor/layer.cc

Issue 7552039: Vend common GL context (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge with ToT Created 9 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "ui/gfx/compositor/layer.h" 5 #include "ui/gfx/compositor/layer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 10
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 texture_draw_params.transform.ConcatTranslate( 87 texture_draw_params.transform.ConcatTranslate(
88 static_cast<float>(layer->bounds_.x()), 88 static_cast<float>(layer->bounds_.x()),
89 static_cast<float>(layer->bounds_.y())); 89 static_cast<float>(layer->bounds_.y()));
90 } 90 }
91 91
92 // Only blend for transparent child layers. 92 // Only blend for transparent child layers.
93 // The root layer will clobber the cleared bg. 93 // The root layer will clobber the cleared bg.
94 texture_draw_params.blend = parent_ != NULL && !fills_bounds_opaquely_; 94 texture_draw_params.blend = parent_ != NULL && !fills_bounds_opaquely_;
95 95
96 #if defined(OS_WIN) 96 #if defined(OS_WIN)
97 texture_->Draw(texture_draw_params); 97 texture_->Draw(texture_draw_params, compositor_->size());
98 #else 98 #else
99 hole_rect_ = hole_rect_.Intersect( 99 hole_rect_ = hole_rect_.Intersect(
100 gfx::Rect(0, 0, bounds_.width(), bounds_.height())); 100 gfx::Rect(0, 0, bounds_.width(), bounds_.height()));
101 101
102 // top 102 // top
103 DrawRegion(texture_draw_params, gfx::Rect(0, 103 DrawRegion(texture_draw_params, gfx::Rect(0,
104 0, 104 0,
105 bounds_.width(), 105 bounds_.width(),
106 hole_rect_.y())); 106 hole_rect_.y()));
107 // left 107 // left
(...skipping 13 matching lines...) Expand all
121 0, 121 0,
122 hole_rect_.bottom(), 122 hole_rect_.bottom(),
123 bounds_.width(), 123 bounds_.width(),
124 bounds_.height() - hole_rect_.bottom())); 124 bounds_.height() - hole_rect_.bottom()));
125 #endif 125 #endif
126 } 126 }
127 127
128 void Layer::DrawRegion(const ui::TextureDrawParams& params, 128 void Layer::DrawRegion(const ui::TextureDrawParams& params,
129 const gfx::Rect& region_to_draw) { 129 const gfx::Rect& region_to_draw) {
130 if (!region_to_draw.IsEmpty()) 130 if (!region_to_draw.IsEmpty())
131 texture_->Draw(params, region_to_draw); 131 texture_->Draw(params, region_to_draw, compositor_->size());
132 } 132 }
133 133
134 void Layer::RecomputeHole() { 134 void Layer::RecomputeHole() {
135 for (size_t i = 0; i < children_.size(); ++i) { 135 for (size_t i = 0; i < children_.size(); ++i) {
136 if (children_[i]->fills_bounds_opaquely() && 136 if (children_[i]->fills_bounds_opaquely() &&
137 !children_[i]->transform().HasChange()) { 137 !children_[i]->transform().HasChange()) {
138 hole_rect_ = children_[i]->bounds(); 138 hole_rect_ = children_[i]->bounds();
139 return; 139 return;
140 } 140 }
141 } 141 }
142 // no opaque child layers, set hole_rect_ to empty 142 // no opaque child layers, set hole_rect_ to empty
143 hole_rect_ = gfx::Rect(); 143 hole_rect_ = gfx::Rect();
144 } 144 }
145 145
146 } // namespace ui 146 } // namespace ui
OLDNEW
« ui/gfx/compositor/compositor_win.cc ('K') | « ui/gfx/compositor/compositor_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698