OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/quads/render_pass.h" | 5 #include "cc/quads/render_pass.h" |
6 #include "cc/quads/solid_color_draw_quad.h" | 6 #include "cc/quads/solid_color_draw_quad.h" |
7 #include "cc/quads/surface_draw_quad.h" | 7 #include "cc/quads/surface_draw_quad.h" |
8 #include "cc/quads/texture_draw_quad.h" | 8 #include "cc/quads/texture_draw_quad.h" |
9 #include "gpu/command_buffer/common/mailbox.h" | 9 #include "gpu/command_buffer/common/mailbox.h" |
10 #include "gpu/command_buffer/common/mailbox_holder.h" | 10 #include "gpu/command_buffer/common/mailbox_holder.h" |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
50 protected: | 50 protected: |
51 scoped_ptr<cc::SharedQuadState> sqs; | 51 scoped_ptr<cc::SharedQuadState> sqs; |
52 gfx::Rect rect; | 52 gfx::Rect rect; |
53 gfx::Rect opaque_rect; | 53 gfx::Rect opaque_rect; |
54 gfx::Rect visible_rect; | 54 gfx::Rect visible_rect; |
55 bool needs_blending; | 55 bool needs_blending; |
56 }; | 56 }; |
57 | 57 |
58 TEST_F(SurfaceLibQuadTest, ColorQuad) { | 58 TEST_F(SurfaceLibQuadTest, ColorQuad) { |
59 scoped_ptr<cc::SolidColorDrawQuad> color_quad = | 59 scoped_ptr<cc::SolidColorDrawQuad> color_quad = |
60 cc::SolidColorDrawQuad::Create(); | 60 make_scoped_ptr(new cc::SolidColorDrawQuad); |
61 SkColor arbitrary_color = SK_ColorGREEN; | 61 SkColor arbitrary_color = SK_ColorGREEN; |
62 bool force_anti_aliasing_off = true; | 62 bool force_anti_aliasing_off = true; |
63 color_quad->SetAll(sqs.get(), | 63 color_quad->SetAll(sqs.get(), |
64 rect, | 64 rect, |
65 opaque_rect, | 65 opaque_rect, |
66 visible_rect, | 66 visible_rect, |
67 needs_blending, | 67 needs_blending, |
68 arbitrary_color, | 68 arbitrary_color, |
69 force_anti_aliasing_off); | 69 force_anti_aliasing_off); |
70 | 70 |
(...skipping 19 matching lines...) Expand all Loading... | |
90 EXPECT_EQ(needs_blending, round_trip_quad->needs_blending); | 90 EXPECT_EQ(needs_blending, round_trip_quad->needs_blending); |
91 ASSERT_EQ(cc::DrawQuad::SOLID_COLOR, round_trip_quad->material); | 91 ASSERT_EQ(cc::DrawQuad::SOLID_COLOR, round_trip_quad->material); |
92 const cc::SolidColorDrawQuad* round_trip_color_quad = | 92 const cc::SolidColorDrawQuad* round_trip_color_quad = |
93 cc::SolidColorDrawQuad::MaterialCast(round_trip_quad.get()); | 93 cc::SolidColorDrawQuad::MaterialCast(round_trip_quad.get()); |
94 EXPECT_EQ(arbitrary_color, round_trip_color_quad->color); | 94 EXPECT_EQ(arbitrary_color, round_trip_color_quad->color); |
95 EXPECT_EQ(force_anti_aliasing_off, | 95 EXPECT_EQ(force_anti_aliasing_off, |
96 round_trip_color_quad->force_anti_aliasing_off); | 96 round_trip_color_quad->force_anti_aliasing_off); |
97 } | 97 } |
98 | 98 |
99 TEST_F(SurfaceLibQuadTest, SurfaceQuad) { | 99 TEST_F(SurfaceLibQuadTest, SurfaceQuad) { |
100 scoped_ptr<cc::SurfaceDrawQuad> surface_quad = cc::SurfaceDrawQuad::Create(); | 100 scoped_ptr<cc::SurfaceDrawQuad> surface_quad = |
jamesr
2014/07/15 18:14:47
you can simplify this and the other construction o
weiliangc
2014/07/15 18:28:12
Done.
| |
101 make_scoped_ptr(new cc::SurfaceDrawQuad); | |
101 cc::SurfaceId arbitrary_id(5); | 102 cc::SurfaceId arbitrary_id(5); |
102 surface_quad->SetAll( | 103 surface_quad->SetAll( |
103 sqs.get(), rect, opaque_rect, visible_rect, needs_blending, arbitrary_id); | 104 sqs.get(), rect, opaque_rect, visible_rect, needs_blending, arbitrary_id); |
104 cc::DrawQuad* base_ptr = static_cast<cc::DrawQuad*>(surface_quad.get()); | 105 cc::DrawQuad* base_ptr = static_cast<cc::DrawQuad*>(surface_quad.get()); |
105 surfaces::QuadPtr mojo_quad = surfaces::Quad::From(*base_ptr); | 106 surfaces::QuadPtr mojo_quad = surfaces::Quad::From(*base_ptr); |
106 ASSERT_FALSE(mojo_quad.is_null()); | 107 ASSERT_FALSE(mojo_quad.is_null()); |
107 EXPECT_EQ(surfaces::SURFACE_CONTENT, mojo_quad->material); | 108 EXPECT_EQ(surfaces::SURFACE_CONTENT, mojo_quad->material); |
108 ASSERT_TRUE(mojo_quad->surface_quad_state); | 109 ASSERT_TRUE(mojo_quad->surface_quad_state); |
109 surfaces::SurfaceQuadStatePtr& mojo_surface_state = | 110 surfaces::SurfaceQuadStatePtr& mojo_surface_state = |
110 mojo_quad->surface_quad_state; | 111 mojo_quad->surface_quad_state; |
111 EXPECT_EQ(surfaces::SurfaceId::From(arbitrary_id), | 112 EXPECT_EQ(surfaces::SurfaceId::From(arbitrary_id), |
112 mojo_surface_state->surface); | 113 mojo_surface_state->surface); |
113 | 114 |
114 scoped_ptr<cc::DrawQuad> round_trip_quad = | 115 scoped_ptr<cc::DrawQuad> round_trip_quad = |
115 ConvertTo(mojo_quad.Pass(), sqs.get()); | 116 ConvertTo(mojo_quad.Pass(), sqs.get()); |
116 ASSERT_EQ(cc::DrawQuad::SURFACE_CONTENT, round_trip_quad->material); | 117 ASSERT_EQ(cc::DrawQuad::SURFACE_CONTENT, round_trip_quad->material); |
117 const cc::SurfaceDrawQuad* round_trip_surface_quad = | 118 const cc::SurfaceDrawQuad* round_trip_surface_quad = |
118 cc::SurfaceDrawQuad::MaterialCast(round_trip_quad.get()); | 119 cc::SurfaceDrawQuad::MaterialCast(round_trip_quad.get()); |
119 EXPECT_EQ(arbitrary_id, round_trip_surface_quad->surface_id); | 120 EXPECT_EQ(arbitrary_id, round_trip_surface_quad->surface_id); |
120 } | 121 } |
121 | 122 |
122 TEST_F(SurfaceLibQuadTest, TextureQuad) { | 123 TEST_F(SurfaceLibQuadTest, TextureQuad) { |
123 scoped_ptr<cc::TextureDrawQuad> texture_quad = cc::TextureDrawQuad::Create(); | 124 scoped_ptr<cc::TextureDrawQuad> texture_quad = |
125 make_scoped_ptr(new cc::TextureDrawQuad); | |
124 unsigned resource_id = 9; | 126 unsigned resource_id = 9; |
125 bool premultiplied_alpha = true; | 127 bool premultiplied_alpha = true; |
126 gfx::PointF uv_top_left(1.7f, 2.1f); | 128 gfx::PointF uv_top_left(1.7f, 2.1f); |
127 gfx::PointF uv_bottom_right(-7.f, 16.3f); | 129 gfx::PointF uv_bottom_right(-7.f, 16.3f); |
128 SkColor background_color = SK_ColorYELLOW; | 130 SkColor background_color = SK_ColorYELLOW; |
129 float vertex_opacity[4] = {0.1f, 0.5f, 0.4f, 0.8f}; | 131 float vertex_opacity[4] = {0.1f, 0.5f, 0.4f, 0.8f}; |
130 bool flipped = false; | 132 bool flipped = false; |
131 texture_quad->SetAll(sqs.get(), | 133 texture_quad->SetAll(sqs.get(), |
132 rect, | 134 rect, |
133 opaque_rect, | 135 opaque_rect, |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
234 | 236 |
235 gfx::Transform content_to_target_transform; | 237 gfx::Transform content_to_target_transform; |
236 content_to_target_transform.Scale3d(0.3f, 0.7f, 0.9f); | 238 content_to_target_transform.Scale3d(0.3f, 0.7f, 0.9f); |
237 gfx::Size content_bounds(57, 39); | 239 gfx::Size content_bounds(57, 39); |
238 gfx::Rect visible_content_rect(3, 7, 28, 42); | 240 gfx::Rect visible_content_rect(3, 7, 28, 42); |
239 gfx::Rect clip_rect(9, 12, 21, 31); | 241 gfx::Rect clip_rect(9, 12, 21, 31); |
240 bool is_clipped = true; | 242 bool is_clipped = true; |
241 float opacity = 0.65f; | 243 float opacity = 0.65f; |
242 int sorting_context_id = 13; | 244 int sorting_context_id = 13; |
243 SkXfermode::Mode blend_mode = SkXfermode::kSrcOver_Mode; | 245 SkXfermode::Mode blend_mode = SkXfermode::kSrcOver_Mode; |
244 scoped_ptr<cc::SharedQuadState> sqs(new cc::SharedQuadState); | 246 cc::SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); |
245 sqs->SetAll(content_to_target_transform, | 247 sqs->SetAll(content_to_target_transform, |
246 content_bounds, | 248 content_bounds, |
247 visible_content_rect, | 249 visible_content_rect, |
248 clip_rect, | 250 clip_rect, |
249 is_clipped, | 251 is_clipped, |
250 opacity, | 252 opacity, |
251 blend_mode, | 253 blend_mode, |
252 sorting_context_id); | 254 sorting_context_id); |
253 pass->shared_quad_state_list.push_back(sqs.Pass()); | |
254 | 255 |
255 scoped_ptr<cc::SolidColorDrawQuad> color_quad = | 256 cc::SolidColorDrawQuad* color_quad = |
256 cc::SolidColorDrawQuad::Create(); | 257 pass->CreateAndAppendDrawQuad<cc::SolidColorDrawQuad>(); |
257 SkColor arbitrary_color = SK_ColorGREEN; | 258 SkColor arbitrary_color = SK_ColorGREEN; |
258 bool force_anti_aliasing_off = true; | 259 bool force_anti_aliasing_off = true; |
259 color_quad->SetAll(pass->shared_quad_state_list.back(), | 260 color_quad->SetAll(pass->shared_quad_state_list.back(), |
260 rect, | 261 rect, |
261 opaque_rect, | 262 opaque_rect, |
262 visible_rect, | 263 visible_rect, |
263 needs_blending, | 264 needs_blending, |
264 arbitrary_color, | 265 arbitrary_color, |
265 force_anti_aliasing_off); | 266 force_anti_aliasing_off); |
266 pass->quad_list.push_back(color_quad.PassAs<cc::DrawQuad>()); | |
267 | 267 |
268 surfaces::PassPtr mojo_pass = surfaces::Pass::From(*pass); | 268 surfaces::PassPtr mojo_pass = surfaces::Pass::From(*pass); |
269 ASSERT_FALSE(mojo_pass.is_null()); | 269 ASSERT_FALSE(mojo_pass.is_null()); |
270 EXPECT_EQ(6, mojo_pass->id); | 270 EXPECT_EQ(6, mojo_pass->id); |
271 EXPECT_EQ(Rect::From(output_rect), mojo_pass->output_rect); | 271 EXPECT_EQ(Rect::From(output_rect), mojo_pass->output_rect); |
272 EXPECT_EQ(Rect::From(damage_rect), mojo_pass->damage_rect); | 272 EXPECT_EQ(Rect::From(damage_rect), mojo_pass->damage_rect); |
273 EXPECT_EQ(Transform::From(transform_to_root_target), | 273 EXPECT_EQ(Transform::From(transform_to_root_target), |
274 mojo_pass->transform_to_root_target); | 274 mojo_pass->transform_to_root_target); |
275 EXPECT_EQ(has_transparent_background, mojo_pass->has_transparent_background); | 275 EXPECT_EQ(has_transparent_background, mojo_pass->has_transparent_background); |
276 ASSERT_EQ(1u, mojo_pass->shared_quad_states.size()); | 276 ASSERT_EQ(1u, mojo_pass->shared_quad_states.size()); |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
384 cc::ReturnedResource round_trip_resource = | 384 cc::ReturnedResource round_trip_resource = |
385 mojo_resource.To<cc::ReturnedResource>(); | 385 mojo_resource.To<cc::ReturnedResource>(); |
386 EXPECT_EQ(id, round_trip_resource.id); | 386 EXPECT_EQ(id, round_trip_resource.id); |
387 EXPECT_EQ(sync_point, round_trip_resource.sync_point); | 387 EXPECT_EQ(sync_point, round_trip_resource.sync_point); |
388 EXPECT_EQ(count, round_trip_resource.count); | 388 EXPECT_EQ(count, round_trip_resource.count); |
389 EXPECT_EQ(lost, round_trip_resource.lost); | 389 EXPECT_EQ(lost, round_trip_resource.lost); |
390 } | 390 } |
391 | 391 |
392 } // namespace | 392 } // namespace |
393 } // namespace mojo | 393 } // namespace mojo |
OLD | NEW |