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

Side by Side Diff: cc/layer_impl.cc

Issue 11264056: cc: Use gfx:: Geometry types for positions, bounds, and related things. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ScaleAsVector Created 8 years, 1 month 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
« no previous file with comments | « cc/layer_impl.h ('k') | cc/layer_iterator_unittest.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 "config.h" 5 #include "config.h"
6 6
7 #include "cc/layer_impl.h" 7 #include "cc/layer_impl.h"
8 8
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
11 #include "cc/debug_border_draw_quad.h" 11 #include "cc/debug_border_draw_quad.h"
12 #include "cc/layer_sorter.h" 12 #include "cc/layer_sorter.h"
13 #include "cc/math_util.h" 13 #include "cc/math_util.h"
14 #include "cc/proxy.h" 14 #include "cc/proxy.h"
15 #include "cc/quad_sink.h" 15 #include "cc/quad_sink.h"
16 #include "cc/scrollbar_animation_controller.h" 16 #include "cc/scrollbar_animation_controller.h"
17 #include "cc/settings.h" 17 #include "cc/settings.h"
18 #include "third_party/skia/include/core/SkImageFilter.h" 18 #include "third_party/skia/include/core/SkImageFilter.h"
19 #include "ui/gfx/point_conversions.h"
20 #include "ui/gfx/rect_conversions.h"
19 21
20 using WebKit::WebTransformationMatrix; 22 using WebKit::WebTransformationMatrix;
21 23
22 namespace cc { 24 namespace cc {
23 25
24 LayerImpl::LayerImpl(int id) 26 LayerImpl::LayerImpl(int id)
25 : m_parent(0) 27 : m_parent(0)
26 , m_maskLayerId(-1) 28 , m_maskLayerId(-1)
27 , m_replicaLayerId(-1) 29 , m_replicaLayerId(-1)
28 , m_layerId(id) 30 , m_layerId(id)
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 DCHECK(m_betweenWillDrawAndDidDraw); 147 DCHECK(m_betweenWillDrawAndDidDraw);
146 m_betweenWillDrawAndDidDraw = false; 148 m_betweenWillDrawAndDidDraw = false;
147 #endif 149 #endif
148 } 150 }
149 151
150 void LayerImpl::appendDebugBorderQuad(QuadSink& quadList, const SharedQuadState* sharedQuadState, AppendQuadsData& appendQuadsData) const 152 void LayerImpl::appendDebugBorderQuad(QuadSink& quadList, const SharedQuadState* sharedQuadState, AppendQuadsData& appendQuadsData) const
151 { 153 {
152 if (!hasDebugBorders()) 154 if (!hasDebugBorders())
153 return; 155 return;
154 156
155 IntRect contentRect(IntPoint(), contentBounds()); 157 gfx::Rect contentRect(gfx::Point(), contentBounds());
156 quadList.append(DebugBorderDrawQuad::create(sharedQuadState, contentRect, de bugBorderColor(), debugBorderWidth()).PassAs<DrawQuad>(), appendQuadsData); 158 quadList.append(DebugBorderDrawQuad::create(sharedQuadState, contentRect, de bugBorderColor(), debugBorderWidth()).PassAs<DrawQuad>(), appendQuadsData);
157 } 159 }
158 160
159 bool LayerImpl::hasContributingDelegatedRenderPasses() const 161 bool LayerImpl::hasContributingDelegatedRenderPasses() const
160 { 162 {
161 return false; 163 return false;
162 } 164 }
163 165
164 RenderPass::Id LayerImpl::firstContributingRenderPassId() const 166 RenderPass::Id LayerImpl::firstContributingRenderPassId() const
165 { 167 {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 return InputHandlerClient::ScrollOnMainThread; 205 return InputHandlerClient::ScrollOnMainThread;
204 } 206 }
205 207
206 if (!screenSpaceTransform().isInvertible()) { 208 if (!screenSpaceTransform().isInvertible()) {
207 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Ignored nonInvertibleTransform "); 209 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Ignored nonInvertibleTransform ");
208 return InputHandlerClient::ScrollIgnored; 210 return InputHandlerClient::ScrollIgnored;
209 } 211 }
210 212
211 if (!nonFastScrollableRegion().isEmpty()) { 213 if (!nonFastScrollableRegion().isEmpty()) {
212 bool clipped = false; 214 bool clipped = false;
213 FloatPoint hitTestPointInLocalSpace = MathUtil::projectPoint(screenSpace Transform().inverse(), FloatPoint(screenSpacePoint), clipped); 215 gfx::PointF hitTestPointInLocalSpace = MathUtil::projectPoint(screenSpac eTransform().inverse(), FloatPoint(screenSpacePoint), clipped);
214 if (!clipped && nonFastScrollableRegion().contains(flooredIntPoint(hitTe stPointInLocalSpace))) { 216 if (!clipped && nonFastScrollableRegion().contains(cc::IntPoint(gfx::ToF looredPoint(hitTestPointInLocalSpace)))) {
215 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed nonFastScrollableRe gion"); 217 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed nonFastScrollableRe gion");
216 return InputHandlerClient::ScrollOnMainThread; 218 return InputHandlerClient::ScrollOnMainThread;
217 } 219 }
218 } 220 }
219 221
220 if (type == InputHandlerClient::Wheel && haveWheelEventHandlers()) { 222 if (type == InputHandlerClient::Wheel && haveWheelEventHandlers()) {
221 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed wheelEventHandlers"); 223 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed wheelEventHandlers");
222 return InputHandlerClient::ScrollOnMainThread; 224 return InputHandlerClient::ScrollOnMainThread;
223 } 225 }
224 226
225 if (!scrollable()) { 227 if (!scrollable()) {
226 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Ignored not scrollable"); 228 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Ignored not scrollable");
227 return InputHandlerClient::ScrollIgnored; 229 return InputHandlerClient::ScrollIgnored;
228 } 230 }
229 231
230 return InputHandlerClient::ScrollStarted; 232 return InputHandlerClient::ScrollStarted;
231 } 233 }
232 234
233 bool LayerImpl::drawCheckerboardForMissingTiles() const 235 bool LayerImpl::drawCheckerboardForMissingTiles() const
234 { 236 {
235 return m_drawCheckerboardForMissingTiles && !Settings::backgroundColorInstea dOfCheckerboard(); 237 return m_drawCheckerboardForMissingTiles && !Settings::backgroundColorInstea dOfCheckerboard();
236 } 238 }
237 239
238 IntRect LayerImpl::layerRectToContentRect(const FloatRect& layerRect) const 240 gfx::Rect LayerImpl::layerRectToContentRect(const gfx::RectF& layerRect) const
239 { 241 {
240 FloatRect contentRect(layerRect); 242 gfx::RectF contentRect = gfx::ScaleRect(layerRect, contentsScaleX(), content sScaleY());
241 contentRect.scale(contentsScaleX(), contentsScaleY());
242 IntRect intContentRect = enclosingIntRect(contentRect);
243 // Intersect with content rect to avoid the extra pixel because for some 243 // Intersect with content rect to avoid the extra pixel because for some
244 // values x and y, ceil((x / y) * y) may be x + 1. 244 // values x and y, ceil((x / y) * y) may be x + 1.
245 intContentRect.intersect(IntRect(IntPoint(), contentBounds())); 245 contentRect.Intersect(gfx::Rect(gfx::Point(), contentBounds()));
246 return intContentRect; 246 return gfx::ToEnclosingRect(contentRect);
247 } 247 }
248 248
249 std::string LayerImpl::indentString(int indent) 249 std::string LayerImpl::indentString(int indent)
250 { 250 {
251 std::string str; 251 std::string str;
252 for (int i = 0; i != indent; ++i) 252 for (int i = 0; i != indent; ++i)
253 str.append(" "); 253 str.append(" ");
254 return str; 254 return str;
255 } 255 }
256 256
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 const char* LayerImpl::layerTypeAsString() const 353 const char* LayerImpl::layerTypeAsString() const
354 { 354 {
355 return "Layer"; 355 return "Layer";
356 } 356 }
357 357
358 void LayerImpl::resetAllChangeTrackingForSubtree() 358 void LayerImpl::resetAllChangeTrackingForSubtree()
359 { 359 {
360 m_layerPropertyChanged = false; 360 m_layerPropertyChanged = false;
361 m_layerSurfacePropertyChanged = false; 361 m_layerSurfacePropertyChanged = false;
362 362
363 m_updateRect = FloatRect(); 363 m_updateRect = gfx::RectF();
364 364
365 if (m_renderSurface) 365 if (m_renderSurface)
366 m_renderSurface->resetPropertyChangedFlag(); 366 m_renderSurface->resetPropertyChangedFlag();
367 367
368 if (m_maskLayer) 368 if (m_maskLayer)
369 m_maskLayer->resetAllChangeTrackingForSubtree(); 369 m_maskLayer->resetAllChangeTrackingForSubtree();
370 370
371 if (m_replicaLayer) 371 if (m_replicaLayer)
372 m_replicaLayer->resetAllChangeTrackingForSubtree(); // also resets the r eplica mask, if it exists. 372 m_replicaLayer->resetAllChangeTrackingForSubtree(); // also resets the r eplica mask, if it exists.
373 373
(...skipping 24 matching lines...) Expand all
398 const WebKit::WebTransformationMatrix& LayerImpl::transform() const 398 const WebKit::WebTransformationMatrix& LayerImpl::transform() const
399 { 399 {
400 return m_transform; 400 return m_transform;
401 } 401 }
402 402
403 void LayerImpl::setTransformFromAnimation(const WebTransformationMatrix& transfo rm) 403 void LayerImpl::setTransformFromAnimation(const WebTransformationMatrix& transfo rm)
404 { 404 {
405 setTransform(transform); 405 setTransform(transform);
406 } 406 }
407 407
408 void LayerImpl::setBounds(const IntSize& bounds) 408 void LayerImpl::setBounds(const gfx::Size& bounds)
409 { 409 {
410 if (m_bounds == bounds) 410 if (m_bounds == bounds)
411 return; 411 return;
412 412
413 m_bounds = bounds; 413 m_bounds = bounds;
414 414
415 if (masksToBounds()) 415 if (masksToBounds())
416 noteLayerPropertyChangedForSubtree(); 416 noteLayerPropertyChangedForSubtree();
417 else 417 else
418 m_layerPropertyChanged = true; 418 m_layerPropertyChanged = true;
(...skipping 25 matching lines...) Expand all
444 444
445 void LayerImpl::setDrawsContent(bool drawsContent) 445 void LayerImpl::setDrawsContent(bool drawsContent)
446 { 446 {
447 if (m_drawsContent == drawsContent) 447 if (m_drawsContent == drawsContent)
448 return; 448 return;
449 449
450 m_drawsContent = drawsContent; 450 m_drawsContent = drawsContent;
451 m_layerPropertyChanged = true; 451 m_layerPropertyChanged = true;
452 } 452 }
453 453
454 void LayerImpl::setAnchorPoint(const FloatPoint& anchorPoint) 454 void LayerImpl::setAnchorPoint(const gfx::PointF& anchorPoint)
455 { 455 {
456 if (m_anchorPoint == anchorPoint) 456 if (m_anchorPoint == anchorPoint)
457 return; 457 return;
458 458
459 m_anchorPoint = anchorPoint; 459 m_anchorPoint = anchorPoint;
460 noteLayerPropertyChangedForSubtree(); 460 noteLayerPropertyChangedForSubtree();
461 } 461 }
462 462
463 void LayerImpl::setAnchorPointZ(float anchorPointZ) 463 void LayerImpl::setAnchorPointZ(float anchorPointZ)
464 { 464 {
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 532
533 m_opacity = opacity; 533 m_opacity = opacity;
534 m_layerSurfacePropertyChanged = true; 534 m_layerSurfacePropertyChanged = true;
535 } 535 }
536 536
537 bool LayerImpl::opacityIsAnimating() const 537 bool LayerImpl::opacityIsAnimating() const
538 { 538 {
539 return m_layerAnimationController->isAnimatingProperty(ActiveAnimation::Opac ity); 539 return m_layerAnimationController->isAnimatingProperty(ActiveAnimation::Opac ity);
540 } 540 }
541 541
542 void LayerImpl::setPosition(const FloatPoint& position) 542 void LayerImpl::setPosition(const gfx::PointF& position)
543 { 543 {
544 if (m_position == position) 544 if (m_position == position)
545 return; 545 return;
546 546
547 m_position = position; 547 m_position = position;
548 noteLayerPropertyChangedForSubtree(); 548 noteLayerPropertyChangedForSubtree();
549 } 549 }
550 550
551 void LayerImpl::setPreserves3D(bool preserves3D) 551 void LayerImpl::setPreserves3D(bool preserves3D)
552 { 552 {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 597
598 m_debugBorderWidth = debugBorderWidth; 598 m_debugBorderWidth = debugBorderWidth;
599 m_layerPropertyChanged = true; 599 m_layerPropertyChanged = true;
600 } 600 }
601 601
602 bool LayerImpl::hasDebugBorders() const 602 bool LayerImpl::hasDebugBorders() const
603 { 603 {
604 return SkColorGetA(m_debugBorderColor) && debugBorderWidth() > 0; 604 return SkColorGetA(m_debugBorderColor) && debugBorderWidth() > 0;
605 } 605 }
606 606
607 void LayerImpl::setContentBounds(const IntSize& contentBounds) 607 void LayerImpl::setContentBounds(const gfx::Size& contentBounds)
608 { 608 {
609 if (m_contentBounds == contentBounds) 609 if (m_contentBounds == contentBounds)
610 return; 610 return;
611 611
612 m_contentBounds = contentBounds; 612 m_contentBounds = contentBounds;
613 m_layerPropertyChanged = true; 613 m_layerPropertyChanged = true;
614 } 614 }
615 615
616 void LayerImpl::setContentsScale(float contentsScaleX, float contentsScaleY) 616 void LayerImpl::setContentsScale(float contentsScaleX, float contentsScaleY)
617 { 617 {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 if (m_doubleSided == doubleSided) 655 if (m_doubleSided == doubleSided)
656 return; 656 return;
657 657
658 m_doubleSided = doubleSided; 658 m_doubleSided = doubleSided;
659 noteLayerPropertyChangedForSubtree(); 659 noteLayerPropertyChangedForSubtree();
660 } 660 }
661 661
662 Region LayerImpl::visibleContentOpaqueRegion() const 662 Region LayerImpl::visibleContentOpaqueRegion() const
663 { 663 {
664 if (contentsOpaque()) 664 if (contentsOpaque())
665 return visibleContentRect(); 665 return cc::IntRect(visibleContentRect());
666 return Region(); 666 return Region();
667 } 667 }
668 668
669 void LayerImpl::didLoseContext() 669 void LayerImpl::didLoseContext()
670 { 670 {
671 } 671 }
672 672
673 void LayerImpl::setMaxScrollPosition(const IntSize& maxScrollPosition) 673 void LayerImpl::setMaxScrollPosition(const IntSize& maxScrollPosition)
674 { 674 {
675 m_maxScrollPosition = maxScrollPosition; 675 m_maxScrollPosition = maxScrollPosition;
(...skipping 23 matching lines...) Expand all
699 699
700 void LayerImpl::setVerticalScrollbarLayer(ScrollbarLayerImpl* scrollbarLayer) 700 void LayerImpl::setVerticalScrollbarLayer(ScrollbarLayerImpl* scrollbarLayer)
701 { 701 {
702 if (!m_scrollbarAnimationController) 702 if (!m_scrollbarAnimationController)
703 m_scrollbarAnimationController = ScrollbarAnimationController::create(th is); 703 m_scrollbarAnimationController = ScrollbarAnimationController::create(th is);
704 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer); 704 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer);
705 m_scrollbarAnimationController->updateScrollOffset(this); 705 m_scrollbarAnimationController->updateScrollOffset(this);
706 } 706 }
707 707
708 } 708 }
OLDNEW
« no previous file with comments | « cc/layer_impl.h ('k') | cc/layer_iterator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698