OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "cc/test/fake_display_list_raster_source.h" | |
6 | |
7 #include <limits> | |
8 | |
9 #include "base/synchronization/waitable_event.h" | |
10 #include "cc/test/fake_display_list_recording_source.h" | |
11 #include "testing/gtest/include/gtest/gtest.h" | |
12 #include "ui/gfx/geometry/size.h" | |
13 | |
14 namespace cc { | |
15 | |
16 scoped_refptr<FakeDisplayListRasterSource> | |
17 FakeDisplayListRasterSource::CreateInfiniteFilled() { | |
18 gfx::Size size(std::numeric_limits<int>::max() / 10, | |
19 std::numeric_limits<int>::max() / 10); | |
20 return CreateFilled(size); | |
21 } | |
22 | |
23 scoped_refptr<FakeDisplayListRasterSource> | |
24 FakeDisplayListRasterSource::CreateFilled(const gfx::Size& size) { | |
25 auto recording_source = | |
26 FakeDisplayListRecordingSource::CreateFilledRecordingSource(size); | |
27 | |
28 SkPaint red_paint; | |
29 red_paint.setColor(SK_ColorRED); | |
30 recording_source->add_draw_rect_with_paint(gfx::Rect(size), red_paint); | |
31 | |
32 gfx::Size smaller_size(size.width() - 10, size.height() - 10); | |
33 SkPaint green_paint; | |
34 green_paint.setColor(SK_ColorGREEN); | |
35 recording_source->add_draw_rect_with_paint(gfx::Rect(smaller_size), | |
36 green_paint); | |
37 | |
38 recording_source->Rerecord(); | |
39 | |
40 return make_scoped_refptr( | |
41 new FakeDisplayListRasterSource(recording_source.get(), false)); | |
42 } | |
43 | |
44 scoped_refptr<FakeDisplayListRasterSource> | |
45 FakeDisplayListRasterSource::CreateFilledLCD(const gfx::Size& size) { | |
46 auto recording_source = | |
47 FakeDisplayListRecordingSource::CreateFilledRecordingSource(size); | |
48 | |
49 SkPaint red_paint; | |
50 red_paint.setColor(SK_ColorRED); | |
51 recording_source->add_draw_rect_with_paint(gfx::Rect(size), red_paint); | |
52 | |
53 gfx::Size smaller_size(size.width() - 10, size.height() - 10); | |
54 SkPaint green_paint; | |
55 green_paint.setColor(SK_ColorGREEN); | |
56 recording_source->add_draw_rect_with_paint(gfx::Rect(smaller_size), | |
57 green_paint); | |
58 | |
59 recording_source->Rerecord(); | |
60 | |
61 return make_scoped_refptr( | |
62 new FakeDisplayListRasterSource(recording_source.get(), true)); | |
63 } | |
64 | |
65 scoped_refptr<FakeDisplayListRasterSource> | |
66 FakeDisplayListRasterSource::CreateFilledSolidColor(const gfx::Size& size) { | |
67 auto recording_source = | |
68 FakeDisplayListRecordingSource::CreateFilledRecordingSource(size); | |
69 | |
70 SkPaint red_paint; | |
71 red_paint.setColor(SK_ColorRED); | |
72 recording_source->add_draw_rect_with_paint(gfx::Rect(size), red_paint); | |
73 recording_source->Rerecord(); | |
74 auto raster_source = make_scoped_refptr( | |
75 new FakeDisplayListRasterSource(recording_source.get(), false)); | |
76 if (!raster_source->IsSolidColor()) | |
77 ADD_FAILURE() << "Not solid color!"; | |
78 return raster_source; | |
79 } | |
80 | |
81 scoped_refptr<FakeDisplayListRasterSource> | |
82 FakeDisplayListRasterSource::CreatePartiallyFilled( | |
83 const gfx::Size& size, | |
84 const gfx::Rect& recorded_viewport) { | |
85 auto recording_source = FakeDisplayListRecordingSource::CreateRecordingSource( | |
danakj
2015/09/22 21:52:15
could we perhaps DCHECK that like
DCHECK_IMPLIES(
vmpstr
2015/09/22 22:57:49
Done.
| |
86 recorded_viewport, size); | |
87 | |
88 SkPaint red_paint; | |
89 red_paint.setColor(SK_ColorRED); | |
90 recording_source->add_draw_rect_with_paint(gfx::Rect(size), red_paint); | |
91 | |
92 gfx::Size smaller_size(size.width() - 10, size.height() - 10); | |
93 SkPaint green_paint; | |
94 green_paint.setColor(SK_ColorGREEN); | |
95 recording_source->add_draw_rect_with_paint(gfx::Rect(smaller_size), | |
96 green_paint); | |
97 | |
98 recording_source->Rerecord(); | |
99 recording_source->SetRecordedViewport(recorded_viewport); | |
100 | |
101 return make_scoped_refptr( | |
102 new FakeDisplayListRasterSource(recording_source.get(), false)); | |
103 } | |
104 | |
105 scoped_refptr<FakeDisplayListRasterSource> | |
106 FakeDisplayListRasterSource::CreateEmpty(const gfx::Size& size) { | |
107 auto recording_source = | |
108 FakeDisplayListRecordingSource::CreateFilledRecordingSource(size); | |
109 return make_scoped_refptr( | |
110 new FakeDisplayListRasterSource(recording_source.get(), false)); | |
111 } | |
112 | |
113 scoped_refptr<FakeDisplayListRasterSource> | |
114 FakeDisplayListRasterSource::CreateFromRecordingSource( | |
115 const DisplayListRecordingSource* recording_source, | |
116 bool can_use_lcd) { | |
117 return make_scoped_refptr( | |
118 new FakeDisplayListRasterSource(recording_source, can_use_lcd)); | |
119 } | |
120 | |
121 scoped_refptr<FakeDisplayListRasterSource> | |
122 FakeDisplayListRasterSource::CreateFromRecordingSourceWithWaitable( | |
123 const DisplayListRecordingSource* recording_source, | |
124 bool can_use_lcd, | |
125 base::WaitableEvent* playback_allowed_event) { | |
126 return make_scoped_refptr(new FakeDisplayListRasterSource( | |
127 recording_source, can_use_lcd, playback_allowed_event)); | |
128 } | |
129 | |
130 FakeDisplayListRasterSource::FakeDisplayListRasterSource( | |
131 const DisplayListRecordingSource* recording_source, | |
132 bool can_use_lcd) | |
133 : DisplayListRasterSource(recording_source, can_use_lcd), | |
134 playback_allowed_event_(nullptr) {} | |
135 | |
136 FakeDisplayListRasterSource::FakeDisplayListRasterSource( | |
137 const DisplayListRecordingSource* recording_source, | |
138 bool can_use_lcd, | |
139 base::WaitableEvent* playback_allowed_event) | |
140 : DisplayListRasterSource(recording_source, can_use_lcd), | |
141 playback_allowed_event_(playback_allowed_event) {} | |
142 | |
143 FakeDisplayListRasterSource::FakeDisplayListRasterSource() | |
danakj
2015/09/22 21:52:15
do we need this constructor? it is not used?
vmpstr
2015/09/22 22:57:49
Removed.
| |
144 : playback_allowed_event_(nullptr) {} | |
145 | |
146 FakeDisplayListRasterSource::~FakeDisplayListRasterSource() {} | |
147 | |
148 void FakeDisplayListRasterSource::PlaybackToCanvas( | |
149 SkCanvas* canvas, | |
150 const gfx::Rect& canvas_bitmap_rect, | |
151 const gfx::Rect& canvas_playback_rect, | |
152 float contents_scale) const { | |
153 if (playback_allowed_event_) | |
154 playback_allowed_event_->Wait(); | |
155 DisplayListRasterSource::PlaybackToCanvas( | |
156 canvas, canvas_bitmap_rect, canvas_playback_rect, contents_scale); | |
157 } | |
158 | |
159 } // namespace cc | |
OLD | NEW |