OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "cc/test/render_pass_test_utils.h" | 5 #include "cc/test/render_pass_test_utils.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "cc/quads/debug_border_draw_quad.h" | 10 #include "cc/quads/debug_border_draw_quad.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 pass->SetNew(id, output_rect, output_rect, root_transform); | 30 pass->SetNew(id, output_rect, output_rect, root_transform); |
31 RenderPass* saved = pass.get(); | 31 RenderPass* saved = pass.get(); |
32 pass_list->push_back(std::move(pass)); | 32 pass_list->push_back(std::move(pass)); |
33 return saved; | 33 return saved; |
34 } | 34 } |
35 | 35 |
36 SolidColorDrawQuad* AddQuad(RenderPass* pass, | 36 SolidColorDrawQuad* AddQuad(RenderPass* pass, |
37 const gfx::Rect& rect, | 37 const gfx::Rect& rect, |
38 SkColor color) { | 38 SkColor color) { |
39 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); | 39 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); |
40 shared_state->SetAll(gfx::Transform(), | 40 shared_state->SetAll(gfx::Transform(), rect.size(), rect, rect, false, 1, |
41 rect.size(), | 41 SkBlendMode::kSrcOver, 0); |
42 rect, | |
43 rect, | |
44 false, | |
45 1, | |
46 SkXfermode::kSrcOver_Mode, | |
47 0); | |
48 SolidColorDrawQuad* quad = | 42 SolidColorDrawQuad* quad = |
49 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 43 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
50 quad->SetNew(shared_state, rect, rect, color, false); | 44 quad->SetNew(shared_state, rect, rect, color, false); |
51 return quad; | 45 return quad; |
52 } | 46 } |
53 | 47 |
54 SolidColorDrawQuad* AddClippedQuad(RenderPass* pass, | 48 SolidColorDrawQuad* AddClippedQuad(RenderPass* pass, |
55 const gfx::Rect& rect, | 49 const gfx::Rect& rect, |
56 SkColor color) { | 50 SkColor color) { |
57 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); | 51 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); |
58 shared_state->SetAll(gfx::Transform(), | 52 shared_state->SetAll(gfx::Transform(), rect.size(), rect, rect, true, 1, |
59 rect.size(), | 53 SkBlendMode::kSrcOver, 0); |
60 rect, | |
61 rect, | |
62 true, | |
63 1, | |
64 SkXfermode::kSrcOver_Mode, | |
65 0); | |
66 SolidColorDrawQuad* quad = | 54 SolidColorDrawQuad* quad = |
67 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 55 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
68 quad->SetNew(shared_state, rect, rect, color, false); | 56 quad->SetNew(shared_state, rect, rect, color, false); |
69 return quad; | 57 return quad; |
70 } | 58 } |
71 | 59 |
72 SolidColorDrawQuad* AddTransformedQuad(RenderPass* pass, | 60 SolidColorDrawQuad* AddTransformedQuad(RenderPass* pass, |
73 const gfx::Rect& rect, | 61 const gfx::Rect& rect, |
74 SkColor color, | 62 SkColor color, |
75 const gfx::Transform& transform) { | 63 const gfx::Transform& transform) { |
76 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); | 64 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); |
77 shared_state->SetAll(transform, | 65 shared_state->SetAll(transform, rect.size(), rect, rect, false, 1, |
78 rect.size(), | 66 SkBlendMode::kSrcOver, 0); |
79 rect, | |
80 rect, | |
81 false, | |
82 1, | |
83 SkXfermode::kSrcOver_Mode, | |
84 0); | |
85 SolidColorDrawQuad* quad = | 67 SolidColorDrawQuad* quad = |
86 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 68 pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
87 quad->SetNew(shared_state, rect, rect, color, false); | 69 quad->SetNew(shared_state, rect, rect, color, false); |
88 return quad; | 70 return quad; |
89 } | 71 } |
90 | 72 |
91 void AddRenderPassQuad(RenderPass* to_pass, RenderPass* contributing_pass) { | 73 void AddRenderPassQuad(RenderPass* to_pass, RenderPass* contributing_pass) { |
92 gfx::Rect output_rect = contributing_pass->output_rect; | 74 gfx::Rect output_rect = contributing_pass->output_rect; |
93 SharedQuadState* shared_state = to_pass->CreateAndAppendSharedQuadState(); | 75 SharedQuadState* shared_state = to_pass->CreateAndAppendSharedQuadState(); |
94 shared_state->SetAll(gfx::Transform(), | 76 shared_state->SetAll(gfx::Transform(), output_rect.size(), output_rect, |
95 output_rect.size(), | 77 output_rect, false, 1, SkBlendMode::kSrcOver, 0); |
96 output_rect, | |
97 output_rect, | |
98 false, | |
99 1, | |
100 SkXfermode::kSrcOver_Mode, | |
101 0); | |
102 RenderPassDrawQuad* quad = | 78 RenderPassDrawQuad* quad = |
103 to_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 79 to_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
104 quad->SetNew(shared_state, output_rect, output_rect, contributing_pass->id, 0, | 80 quad->SetNew(shared_state, output_rect, output_rect, contributing_pass->id, 0, |
105 gfx::Vector2dF(), gfx::Size(), FilterOperations(), | 81 gfx::Vector2dF(), gfx::Size(), FilterOperations(), |
106 gfx::Vector2dF(), gfx::PointF(), FilterOperations()); | 82 gfx::Vector2dF(), gfx::PointF(), FilterOperations()); |
107 } | 83 } |
108 | 84 |
109 void AddRenderPassQuad(RenderPass* to_pass, | 85 void AddRenderPassQuad(RenderPass* to_pass, |
110 RenderPass* contributing_pass, | 86 RenderPass* contributing_pass, |
111 ResourceId mask_resource_id, | 87 ResourceId mask_resource_id, |
112 const FilterOperations& filters, | 88 const FilterOperations& filters, |
113 gfx::Transform transform, | 89 gfx::Transform transform, |
114 SkXfermode::Mode blend_mode) { | 90 SkBlendMode blend_mode) { |
115 gfx::Rect output_rect = contributing_pass->output_rect; | 91 gfx::Rect output_rect = contributing_pass->output_rect; |
116 SharedQuadState* shared_state = to_pass->CreateAndAppendSharedQuadState(); | 92 SharedQuadState* shared_state = to_pass->CreateAndAppendSharedQuadState(); |
117 shared_state->SetAll(transform, | 93 shared_state->SetAll(transform, |
118 output_rect.size(), | 94 output_rect.size(), |
119 output_rect, | 95 output_rect, |
120 output_rect, | 96 output_rect, |
121 false, | 97 false, |
122 1, | 98 1, |
123 blend_mode, | 99 blend_mode, |
124 0); | 100 0); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1); | 160 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1); |
185 std::unique_ptr<SingleReleaseCallbackImpl> callback = | 161 std::unique_ptr<SingleReleaseCallbackImpl> callback = |
186 SingleReleaseCallbackImpl::Create(base::Bind(&EmptyReleaseCallback)); | 162 SingleReleaseCallbackImpl::Create(base::Bind(&EmptyReleaseCallback)); |
187 TextureMailbox mailbox(gpu_mailbox, kSyncTokenForMailboxTextureQuad, target); | 163 TextureMailbox mailbox(gpu_mailbox, kSyncTokenForMailboxTextureQuad, target); |
188 ResourceId resource8 = resource_provider->CreateResourceFromTextureMailbox( | 164 ResourceId resource8 = resource_provider->CreateResourceFromTextureMailbox( |
189 mailbox, std::move(callback)); | 165 mailbox, std::move(callback)); |
190 resource_provider->AllocateForTesting(resource8); | 166 resource_provider->AllocateForTesting(resource8); |
191 | 167 |
192 SharedQuadState* shared_state = to_pass->CreateAndAppendSharedQuadState(); | 168 SharedQuadState* shared_state = to_pass->CreateAndAppendSharedQuadState(); |
193 shared_state->SetAll(gfx::Transform(), rect.size(), rect, rect, false, 1, | 169 shared_state->SetAll(gfx::Transform(), rect.size(), rect, rect, false, 1, |
194 SkXfermode::kSrcOver_Mode, 0); | 170 SkBlendMode::kSrcOver, 0); |
195 | 171 |
196 DebugBorderDrawQuad* debug_border_quad = | 172 DebugBorderDrawQuad* debug_border_quad = |
197 to_pass->CreateAndAppendDrawQuad<DebugBorderDrawQuad>(); | 173 to_pass->CreateAndAppendDrawQuad<DebugBorderDrawQuad>(); |
198 debug_border_quad->SetNew(shared_state, rect, visible_rect, SK_ColorRED, 1); | 174 debug_border_quad->SetNew(shared_state, rect, visible_rect, SK_ColorRED, 1); |
199 | 175 |
200 if (child_pass.layer_id) { | 176 if (child_pass.layer_id) { |
201 RenderPassDrawQuad* render_pass_quad = | 177 RenderPassDrawQuad* render_pass_quad = |
202 to_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 178 to_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
203 render_pass_quad->SetNew( | 179 render_pass_quad->SetNew( |
204 shared_state, rect, visible_rect, child_pass, resource5, | 180 shared_state, rect, visible_rect, child_pass, resource5, |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 transformed_state->quad_to_target_transform = | 220 transformed_state->quad_to_target_transform = |
245 transformed_state->quad_to_target_transform * rotation; | 221 transformed_state->quad_to_target_transform * rotation; |
246 TileDrawQuad* transformed_tile_quad = | 222 TileDrawQuad* transformed_tile_quad = |
247 to_pass->CreateAndAppendDrawQuad<TileDrawQuad>(); | 223 to_pass->CreateAndAppendDrawQuad<TileDrawQuad>(); |
248 transformed_tile_quad->SetNew( | 224 transformed_tile_quad->SetNew( |
249 transformed_state, rect, opaque_rect, visible_rect, resource3, | 225 transformed_state, rect, opaque_rect, visible_rect, resource3, |
250 gfx::RectF(0, 0, 100, 100), gfx::Size(100, 100), false, false); | 226 gfx::RectF(0, 0, 100, 100), gfx::Size(100, 100), false, false); |
251 | 227 |
252 SharedQuadState* shared_state2 = to_pass->CreateAndAppendSharedQuadState(); | 228 SharedQuadState* shared_state2 = to_pass->CreateAndAppendSharedQuadState(); |
253 shared_state->SetAll(gfx::Transform(), rect.size(), rect, rect, false, 1, | 229 shared_state->SetAll(gfx::Transform(), rect.size(), rect, rect, false, 1, |
254 SkXfermode::kSrcOver_Mode, 0); | 230 SkBlendMode::kSrcOver, 0); |
255 | 231 |
256 TileDrawQuad* tile_quad = to_pass->CreateAndAppendDrawQuad<TileDrawQuad>(); | 232 TileDrawQuad* tile_quad = to_pass->CreateAndAppendDrawQuad<TileDrawQuad>(); |
257 tile_quad->SetNew(shared_state2, rect, opaque_rect, visible_rect, resource4, | 233 tile_quad->SetNew(shared_state2, rect, opaque_rect, visible_rect, resource4, |
258 gfx::RectF(0, 0, 100, 100), gfx::Size(100, 100), false, | 234 gfx::RectF(0, 0, 100, 100), gfx::Size(100, 100), false, |
259 false); | 235 false); |
260 | 236 |
261 ResourceId plane_resources[4]; | 237 ResourceId plane_resources[4]; |
262 for (int i = 0; i < 4; ++i) { | 238 for (int i = 0; i < 4; ++i) { |
263 plane_resources[i] = resource_provider->CreateResource( | 239 plane_resources[i] = resource_provider->CreateResource( |
264 gfx::Size(20, 12), ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 240 gfx::Size(20, 12), ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
265 resource_provider->best_texture_format(), gfx::ColorSpace()); | 241 resource_provider->best_texture_format(), gfx::ColorSpace()); |
266 resource_provider->AllocateForTesting(plane_resources[i]); | 242 resource_provider->AllocateForTesting(plane_resources[i]); |
267 } | 243 } |
268 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::REC_601; | 244 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::REC_601; |
269 | 245 |
270 YUVVideoDrawQuad* yuv_quad = | 246 YUVVideoDrawQuad* yuv_quad = |
271 to_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>(); | 247 to_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>(); |
272 yuv_quad->SetNew(shared_state2, rect, opaque_rect, visible_rect, | 248 yuv_quad->SetNew(shared_state2, rect, opaque_rect, visible_rect, |
273 gfx::RectF(.0f, .0f, 100.0f, 100.0f), | 249 gfx::RectF(.0f, .0f, 100.0f, 100.0f), |
274 gfx::RectF(.0f, .0f, 50.0f, 50.0f), gfx::Size(100, 100), | 250 gfx::RectF(.0f, .0f, 50.0f, 50.0f), gfx::Size(100, 100), |
275 gfx::Size(50, 50), plane_resources[0], plane_resources[1], | 251 gfx::Size(50, 50), plane_resources[0], plane_resources[1], |
276 plane_resources[2], plane_resources[3], color_space, | 252 plane_resources[2], plane_resources[3], color_space, |
277 gfx::ColorSpace::CreateJpeg(), 0.0, 1.0, 8); | 253 gfx::ColorSpace::CreateJpeg(), 0.0, 1.0, 8); |
278 } | 254 } |
279 | 255 |
280 } // namespace cc | 256 } // namespace cc |
OLD | NEW |