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