OLD | NEW |
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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/compiler_specific.h" | 6 #include "base/compiler_specific.h" |
7 #include "base/file_path.h" | 7 #include "base/file_path.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 1020 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1031 void SetSchedulePaintRect(const gfx::Rect& rect) { | 1031 void SetSchedulePaintRect(const gfx::Rect& rect) { |
1032 schedule_paint_rect_ = rect; | 1032 schedule_paint_rect_ = rect; |
1033 } | 1033 } |
1034 | 1034 |
1035 int GetPaintCountAndClear() { | 1035 int GetPaintCountAndClear() { |
1036 int value = paint_count_; | 1036 int value = paint_count_; |
1037 paint_count_ = 0; | 1037 paint_count_ = 0; |
1038 return value; | 1038 return value; |
1039 } | 1039 } |
1040 | 1040 |
1041 const gfx::Rect& last_clip_rect() const { return last_clip_rect_; } | 1041 const gfx::RectF& last_clip_rect() const { return last_clip_rect_; } |
1042 | 1042 |
1043 private: | 1043 private: |
1044 // Overridden from LayerDelegate: | 1044 // Overridden from LayerDelegate: |
1045 virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE { | 1045 virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE { |
1046 paint_count_++; | 1046 paint_count_++; |
1047 if (!schedule_paint_rect_.IsEmpty()) { | 1047 if (!schedule_paint_rect_.IsEmpty()) { |
1048 layer_->SchedulePaint(schedule_paint_rect_); | 1048 layer_->SchedulePaint(schedule_paint_rect_); |
1049 schedule_paint_rect_ = gfx::Rect(); | 1049 schedule_paint_rect_ = gfx::Rect(); |
1050 } | 1050 } |
1051 SkRect sk_clip_rect; | 1051 SkRect sk_clip_rect; |
1052 if (canvas->sk_canvas()->getClipBounds(&sk_clip_rect)) | 1052 if (canvas->sk_canvas()->getClipBounds(&sk_clip_rect)) |
1053 last_clip_rect_ = gfx::SkRectToRect(sk_clip_rect); | 1053 last_clip_rect_ = gfx::SkRectToRectF(sk_clip_rect); |
1054 } | 1054 } |
1055 | 1055 |
1056 virtual void OnDeviceScaleFactorChanged(float device_scale_factor) OVERRIDE { | 1056 virtual void OnDeviceScaleFactorChanged(float device_scale_factor) OVERRIDE { |
1057 } | 1057 } |
1058 | 1058 |
1059 virtual base::Closure PrepareForLayerBoundsChange() OVERRIDE { | 1059 virtual base::Closure PrepareForLayerBoundsChange() OVERRIDE { |
1060 return base::Closure(); | 1060 return base::Closure(); |
1061 } | 1061 } |
1062 | 1062 |
1063 int paint_count_; | 1063 int paint_count_; |
1064 Layer* layer_; | 1064 Layer* layer_; |
1065 gfx::Rect schedule_paint_rect_; | 1065 gfx::Rect schedule_paint_rect_; |
1066 gfx::Rect last_clip_rect_; | 1066 gfx::RectF last_clip_rect_; |
1067 | 1067 |
1068 DISALLOW_COPY_AND_ASSIGN(SchedulePaintLayerDelegate); | 1068 DISALLOW_COPY_AND_ASSIGN(SchedulePaintLayerDelegate); |
1069 }; | 1069 }; |
1070 | 1070 |
1071 } // namespace | 1071 } // namespace |
1072 | 1072 |
1073 // Verifies that if SchedulePaint is invoked during painting the layer is still | 1073 // Verifies that if SchedulePaint is invoked during painting the layer is still |
1074 // marked dirty. | 1074 // marked dirty. |
1075 TEST_F(LayerWithDelegateTest, SchedulePaintFromOnPaintLayer) { | 1075 TEST_F(LayerWithDelegateTest, SchedulePaintFromOnPaintLayer) { |
1076 scoped_ptr<Layer> root(CreateColorLayer(SK_ColorRED, | 1076 scoped_ptr<Layer> root(CreateColorLayer(SK_ColorRED, |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1296 | 1296 |
1297 // Resize layer. | 1297 // Resize layer. |
1298 child->SetBounds(gfx::Rect(200, 200, 400, 400)); | 1298 child->SetBounds(gfx::Rect(200, 200, 400, 400)); |
1299 child->SetVisible(true); | 1299 child->SetVisible(true); |
1300 EXPECT_TRUE(schedule_draw_invoked_); | 1300 EXPECT_TRUE(schedule_draw_invoked_); |
1301 DrawTree(root.get()); | 1301 DrawTree(root.get()); |
1302 EXPECT_TRUE(delegate.painted()); | 1302 EXPECT_TRUE(delegate.painted()); |
1303 } | 1303 } |
1304 | 1304 |
1305 } // namespace ui | 1305 } // namespace ui |
OLD | NEW |