| 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" |
| 11 #include "mojo/services/public/cpp/geometry/geometry_type_converters.h" | 11 #include "mojo/services/public/cpp/geometry/geometry_type_converters.h" |
| 12 #include "mojo/services/public/cpp/surfaces/surfaces_type_converters.h" | 12 #include "mojo/services/public/cpp/surfaces/surfaces_type_converters.h" |
| 13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 14 #include "third_party/skia/include/core/SkColor.h" | 14 #include "third_party/skia/include/core/SkColor.h" |
| 15 #include "third_party/skia/include/core/SkXfermode.h" | 15 #include "third_party/skia/include/core/SkXfermode.h" |
| 16 | 16 |
| 17 namespace mojo { | 17 namespace mojo { |
| 18 namespace { | 18 namespace { |
| 19 | 19 |
| 20 TEST(SurfaceLibTest, SurfaceIdConverterNullId) { | 20 TEST(SurfaceLibTest, SurfaceIdConverterNullId) { |
| 21 cc::SurfaceId null_id; | 21 cc::SurfaceId null_id; |
| 22 cc::SurfaceId round_trip = | 22 cc::SurfaceId round_trip = SurfaceId::From(null_id).To<cc::SurfaceId>(); |
| 23 surfaces::SurfaceId::From(null_id).To<cc::SurfaceId>(); | |
| 24 EXPECT_TRUE(round_trip.is_null()); | 23 EXPECT_TRUE(round_trip.is_null()); |
| 25 } | 24 } |
| 26 | 25 |
| 27 TEST(SurfaceLibTest, SurfaceIdConverterValidId) { | 26 TEST(SurfaceLibTest, SurfaceIdConverterValidId) { |
| 28 cc::SurfaceId valid_id(7); | 27 cc::SurfaceId valid_id(7); |
| 29 cc::SurfaceId round_trip = | 28 cc::SurfaceId round_trip = SurfaceId::From(valid_id).To<cc::SurfaceId>(); |
| 30 surfaces::SurfaceId::From(valid_id).To<cc::SurfaceId>(); | |
| 31 EXPECT_FALSE(round_trip.is_null()); | 29 EXPECT_FALSE(round_trip.is_null()); |
| 32 EXPECT_EQ(valid_id, round_trip); | 30 EXPECT_EQ(valid_id, round_trip); |
| 33 } | 31 } |
| 34 | 32 |
| 35 TEST(SurfaceLibTest, Color) { | 33 TEST(SurfaceLibTest, Color) { |
| 36 SkColor arbitrary_color = SK_ColorMAGENTA; | 34 SkColor arbitrary_color = SK_ColorMAGENTA; |
| 37 SkColor round_trip = surfaces::Color::From(arbitrary_color).To<SkColor>(); | 35 SkColor round_trip = Color::From(arbitrary_color).To<SkColor>(); |
| 38 EXPECT_EQ(arbitrary_color, round_trip); | 36 EXPECT_EQ(arbitrary_color, round_trip); |
| 39 } | 37 } |
| 40 | 38 |
| 41 class SurfaceLibQuadTest : public testing::Test { | 39 class SurfaceLibQuadTest : public testing::Test { |
| 42 public: | 40 public: |
| 43 SurfaceLibQuadTest() | 41 SurfaceLibQuadTest() |
| 44 : rect(5, 7, 13, 19), | 42 : rect(5, 7, 13, 19), |
| 45 opaque_rect(rect), | 43 opaque_rect(rect), |
| 46 visible_rect(9, 11, 5, 7), | 44 visible_rect(9, 11, 5, 7), |
| 47 needs_blending(false) { | 45 needs_blending(false) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 64 SkColor arbitrary_color = SK_ColorGREEN; | 62 SkColor arbitrary_color = SK_ColorGREEN; |
| 65 bool force_anti_aliasing_off = true; | 63 bool force_anti_aliasing_off = true; |
| 66 color_quad->SetAll(sqs, | 64 color_quad->SetAll(sqs, |
| 67 rect, | 65 rect, |
| 68 opaque_rect, | 66 opaque_rect, |
| 69 visible_rect, | 67 visible_rect, |
| 70 needs_blending, | 68 needs_blending, |
| 71 arbitrary_color, | 69 arbitrary_color, |
| 72 force_anti_aliasing_off); | 70 force_anti_aliasing_off); |
| 73 | 71 |
| 74 surfaces::QuadPtr mojo_quad = surfaces::Quad::From(*(pass->quad_list.back())); | 72 QuadPtr mojo_quad = Quad::From(*(pass->quad_list.back())); |
| 75 ASSERT_FALSE(mojo_quad.is_null()); | 73 ASSERT_FALSE(mojo_quad.is_null()); |
| 76 EXPECT_EQ(surfaces::MATERIAL_SOLID_COLOR, mojo_quad->material); | 74 EXPECT_EQ(MATERIAL_SOLID_COLOR, mojo_quad->material); |
| 77 EXPECT_EQ(Rect::From(rect), mojo_quad->rect); | 75 EXPECT_EQ(Rect::From(rect), mojo_quad->rect); |
| 78 EXPECT_EQ(Rect::From(opaque_rect), mojo_quad->opaque_rect); | 76 EXPECT_EQ(Rect::From(opaque_rect), mojo_quad->opaque_rect); |
| 79 EXPECT_EQ(Rect::From(visible_rect), mojo_quad->visible_rect); | 77 EXPECT_EQ(Rect::From(visible_rect), mojo_quad->visible_rect); |
| 80 EXPECT_EQ(needs_blending, mojo_quad->needs_blending); | 78 EXPECT_EQ(needs_blending, mojo_quad->needs_blending); |
| 81 ASSERT_TRUE(mojo_quad->solid_color_quad_state); | 79 ASSERT_TRUE(mojo_quad->solid_color_quad_state); |
| 82 surfaces::SolidColorQuadStatePtr& mojo_color_state = | 80 SolidColorQuadStatePtr& mojo_color_state = mojo_quad->solid_color_quad_state; |
| 83 mojo_quad->solid_color_quad_state; | 81 EXPECT_EQ(Color::From(arbitrary_color), mojo_color_state->color); |
| 84 EXPECT_EQ(surfaces::Color::From(arbitrary_color), mojo_color_state->color); | |
| 85 EXPECT_EQ(force_anti_aliasing_off, mojo_color_state->force_anti_aliasing_off); | 82 EXPECT_EQ(force_anti_aliasing_off, mojo_color_state->force_anti_aliasing_off); |
| 86 } | 83 } |
| 87 | 84 |
| 88 TEST_F(SurfaceLibQuadTest, SurfaceQuad) { | 85 TEST_F(SurfaceLibQuadTest, SurfaceQuad) { |
| 89 cc::SurfaceDrawQuad* surface_quad = | 86 cc::SurfaceDrawQuad* surface_quad = |
| 90 pass->CreateAndAppendDrawQuad<cc::SurfaceDrawQuad>(); | 87 pass->CreateAndAppendDrawQuad<cc::SurfaceDrawQuad>(); |
| 91 cc::SurfaceId arbitrary_id(5); | 88 cc::SurfaceId arbitrary_id(5); |
| 92 surface_quad->SetAll( | 89 surface_quad->SetAll( |
| 93 sqs, rect, opaque_rect, visible_rect, needs_blending, arbitrary_id); | 90 sqs, rect, opaque_rect, visible_rect, needs_blending, arbitrary_id); |
| 94 | 91 |
| 95 surfaces::QuadPtr mojo_quad = surfaces::Quad::From(*(pass->quad_list.back())); | 92 QuadPtr mojo_quad = Quad::From(*(pass->quad_list.back())); |
| 96 ASSERT_FALSE(mojo_quad.is_null()); | 93 ASSERT_FALSE(mojo_quad.is_null()); |
| 97 EXPECT_EQ(surfaces::MATERIAL_SURFACE_CONTENT, mojo_quad->material); | 94 EXPECT_EQ(MATERIAL_SURFACE_CONTENT, mojo_quad->material); |
| 98 ASSERT_TRUE(mojo_quad->surface_quad_state); | 95 ASSERT_TRUE(mojo_quad->surface_quad_state); |
| 99 surfaces::SurfaceQuadStatePtr& mojo_surface_state = | 96 SurfaceQuadStatePtr& mojo_surface_state = mojo_quad->surface_quad_state; |
| 100 mojo_quad->surface_quad_state; | 97 EXPECT_EQ(SurfaceId::From(arbitrary_id), |
| 101 EXPECT_EQ(surfaces::SurfaceId::From(arbitrary_id), | |
| 102 mojo_surface_state->surface); | 98 mojo_surface_state->surface); |
| 103 } | 99 } |
| 104 | 100 |
| 105 TEST_F(SurfaceLibQuadTest, TextureQuad) { | 101 TEST_F(SurfaceLibQuadTest, TextureQuad) { |
| 106 cc::TextureDrawQuad* texture_quad = | 102 cc::TextureDrawQuad* texture_quad = |
| 107 pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>(); | 103 pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>(); |
| 108 unsigned resource_id = 9; | 104 unsigned resource_id = 9; |
| 109 bool premultiplied_alpha = true; | 105 bool premultiplied_alpha = true; |
| 110 gfx::PointF uv_top_left(1.7f, 2.1f); | 106 gfx::PointF uv_top_left(1.7f, 2.1f); |
| 111 gfx::PointF uv_bottom_right(-7.f, 16.3f); | 107 gfx::PointF uv_bottom_right(-7.f, 16.3f); |
| 112 SkColor background_color = SK_ColorYELLOW; | 108 SkColor background_color = SK_ColorYELLOW; |
| 113 float vertex_opacity[4] = {0.1f, 0.5f, 0.4f, 0.8f}; | 109 float vertex_opacity[4] = {0.1f, 0.5f, 0.4f, 0.8f}; |
| 114 bool flipped = false; | 110 bool flipped = false; |
| 115 texture_quad->SetAll(sqs, | 111 texture_quad->SetAll(sqs, |
| 116 rect, | 112 rect, |
| 117 opaque_rect, | 113 opaque_rect, |
| 118 visible_rect, | 114 visible_rect, |
| 119 needs_blending, | 115 needs_blending, |
| 120 resource_id, | 116 resource_id, |
| 121 premultiplied_alpha, | 117 premultiplied_alpha, |
| 122 uv_top_left, | 118 uv_top_left, |
| 123 uv_bottom_right, | 119 uv_bottom_right, |
| 124 background_color, | 120 background_color, |
| 125 vertex_opacity, | 121 vertex_opacity, |
| 126 flipped); | 122 flipped); |
| 127 | 123 |
| 128 surfaces::QuadPtr mojo_quad = surfaces::Quad::From(*(pass->quad_list.back())); | 124 QuadPtr mojo_quad = Quad::From(*(pass->quad_list.back())); |
| 129 ASSERT_FALSE(mojo_quad.is_null()); | 125 ASSERT_FALSE(mojo_quad.is_null()); |
| 130 EXPECT_EQ(surfaces::MATERIAL_TEXTURE_CONTENT, mojo_quad->material); | 126 EXPECT_EQ(MATERIAL_TEXTURE_CONTENT, mojo_quad->material); |
| 131 ASSERT_TRUE(mojo_quad->texture_quad_state); | 127 ASSERT_TRUE(mojo_quad->texture_quad_state); |
| 132 surfaces::TextureQuadStatePtr& mojo_texture_state = | 128 TextureQuadStatePtr& mojo_texture_state = mojo_quad->texture_quad_state; |
| 133 mojo_quad->texture_quad_state; | |
| 134 EXPECT_EQ(resource_id, mojo_texture_state->resource_id); | 129 EXPECT_EQ(resource_id, mojo_texture_state->resource_id); |
| 135 EXPECT_EQ(premultiplied_alpha, mojo_texture_state->premultiplied_alpha); | 130 EXPECT_EQ(premultiplied_alpha, mojo_texture_state->premultiplied_alpha); |
| 136 EXPECT_EQ(PointF::From(uv_top_left), mojo_texture_state->uv_top_left); | 131 EXPECT_EQ(PointF::From(uv_top_left), mojo_texture_state->uv_top_left); |
| 137 EXPECT_EQ(PointF::From(uv_bottom_right), mojo_texture_state->uv_bottom_right); | 132 EXPECT_EQ(PointF::From(uv_bottom_right), mojo_texture_state->uv_bottom_right); |
| 138 EXPECT_EQ(surfaces::Color::From(background_color), | 133 EXPECT_EQ(Color::From(background_color), |
| 139 mojo_texture_state->background_color); | 134 mojo_texture_state->background_color); |
| 140 for (size_t i = 0; i < 4; ++i) { | 135 for (size_t i = 0; i < 4; ++i) { |
| 141 EXPECT_EQ(vertex_opacity[i], mojo_texture_state->vertex_opacity[i]) << i; | 136 EXPECT_EQ(vertex_opacity[i], mojo_texture_state->vertex_opacity[i]) << i; |
| 142 } | 137 } |
| 143 EXPECT_EQ(flipped, mojo_texture_state->flipped); | 138 EXPECT_EQ(flipped, mojo_texture_state->flipped); |
| 144 } | 139 } |
| 145 | 140 |
| 146 TEST_F(SurfaceLibQuadTest, TextureQuadEmptyVertexOpacity) { | 141 TEST_F(SurfaceLibQuadTest, TextureQuadEmptyVertexOpacity) { |
| 147 surfaces::QuadPtr mojo_texture_quad = surfaces::Quad::New(); | 142 QuadPtr mojo_texture_quad = Quad::New(); |
| 148 mojo_texture_quad->material = surfaces::MATERIAL_TEXTURE_CONTENT; | 143 mojo_texture_quad->material = MATERIAL_TEXTURE_CONTENT; |
| 149 surfaces::TextureQuadStatePtr mojo_texture_state = | 144 TextureQuadStatePtr mojo_texture_state = TextureQuadState::New(); |
| 150 surfaces::TextureQuadState::New(); | 145 mojo_texture_state->background_color = Color::New(); |
| 151 mojo_texture_state->background_color = surfaces::Color::New(); | |
| 152 mojo_texture_quad->texture_quad_state = mojo_texture_state.Pass(); | 146 mojo_texture_quad->texture_quad_state = mojo_texture_state.Pass(); |
| 153 surfaces::PassPtr mojo_pass = surfaces::Pass::New(); | 147 PassPtr mojo_pass = Pass::New(); |
| 154 mojo_pass->quads.push_back(mojo_texture_quad.Pass()); | 148 mojo_pass->quads.push_back(mojo_texture_quad.Pass()); |
| 155 surfaces::SharedQuadStatePtr mojo_sqs = surfaces::SharedQuadState::New(); | 149 SharedQuadStatePtr mojo_sqs = SharedQuadState::New(); |
| 156 mojo_pass->shared_quad_states.push_back(mojo_sqs.Pass()); | 150 mojo_pass->shared_quad_states.push_back(mojo_sqs.Pass()); |
| 157 | 151 |
| 158 scoped_ptr<cc::RenderPass> pass = ConvertTo(mojo_pass.Pass()); | 152 scoped_ptr<cc::RenderPass> pass = ConvertTo(mojo_pass.Pass()); |
| 159 EXPECT_FALSE(pass); | 153 EXPECT_FALSE(pass); |
| 160 } | 154 } |
| 161 | 155 |
| 162 TEST_F(SurfaceLibQuadTest, TextureQuadEmptyBackgroundColor) { | 156 TEST_F(SurfaceLibQuadTest, TextureQuadEmptyBackgroundColor) { |
| 163 surfaces::QuadPtr mojo_texture_quad = surfaces::Quad::New(); | 157 QuadPtr mojo_texture_quad = Quad::New(); |
| 164 mojo_texture_quad->material = surfaces::MATERIAL_TEXTURE_CONTENT; | 158 mojo_texture_quad->material = MATERIAL_TEXTURE_CONTENT; |
| 165 surfaces::TextureQuadStatePtr mojo_texture_state = | 159 TextureQuadStatePtr mojo_texture_state = TextureQuadState::New(); |
| 166 surfaces::TextureQuadState::New(); | |
| 167 mojo_texture_state->vertex_opacity = mojo::Array<float>::New(4); | 160 mojo_texture_state->vertex_opacity = mojo::Array<float>::New(4); |
| 168 mojo_texture_quad->texture_quad_state = mojo_texture_state.Pass(); | 161 mojo_texture_quad->texture_quad_state = mojo_texture_state.Pass(); |
| 169 surfaces::PassPtr mojo_pass = surfaces::Pass::New(); | 162 PassPtr mojo_pass = Pass::New(); |
| 170 mojo_pass->quads.push_back(mojo_texture_quad.Pass()); | 163 mojo_pass->quads.push_back(mojo_texture_quad.Pass()); |
| 171 surfaces::SharedQuadStatePtr mojo_sqs = surfaces::SharedQuadState::New(); | 164 SharedQuadStatePtr mojo_sqs = SharedQuadState::New(); |
| 172 mojo_pass->shared_quad_states.push_back(mojo_sqs.Pass()); | 165 mojo_pass->shared_quad_states.push_back(mojo_sqs.Pass()); |
| 173 | 166 |
| 174 scoped_ptr<cc::RenderPass> pass = ConvertTo(mojo_pass.Pass()); | 167 scoped_ptr<cc::RenderPass> pass = ConvertTo(mojo_pass.Pass()); |
| 175 EXPECT_FALSE(pass); | 168 EXPECT_FALSE(pass); |
| 176 } | 169 } |
| 177 | 170 |
| 178 TEST(SurfaceLibTest, SharedQuadState) { | 171 TEST(SurfaceLibTest, SharedQuadState) { |
| 179 gfx::Transform content_to_target_transform; | 172 gfx::Transform content_to_target_transform; |
| 180 content_to_target_transform.Scale3d(0.3f, 0.7f, 0.9f); | 173 content_to_target_transform.Scale3d(0.3f, 0.7f, 0.9f); |
| 181 gfx::Size content_bounds(57, 39); | 174 gfx::Size content_bounds(57, 39); |
| 182 gfx::Rect visible_content_rect(3, 7, 28, 42); | 175 gfx::Rect visible_content_rect(3, 7, 28, 42); |
| 183 gfx::Rect clip_rect(9, 12, 21, 31); | 176 gfx::Rect clip_rect(9, 12, 21, 31); |
| 184 bool is_clipped = true; | 177 bool is_clipped = true; |
| 185 float opacity = 0.65f; | 178 float opacity = 0.65f; |
| 186 int sorting_context_id = 13; | 179 int sorting_context_id = 13; |
| 187 SkXfermode::Mode blend_mode = SkXfermode::kSrcOver_Mode; | 180 ::SkXfermode::Mode blend_mode = ::SkXfermode::kSrcOver_Mode; |
| 188 scoped_ptr<cc::RenderPass> pass = cc::RenderPass::Create(); | 181 scoped_ptr<cc::RenderPass> pass = cc::RenderPass::Create(); |
| 189 cc::SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); | 182 cc::SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); |
| 190 sqs->SetAll(content_to_target_transform, | 183 sqs->SetAll(content_to_target_transform, |
| 191 content_bounds, | 184 content_bounds, |
| 192 visible_content_rect, | 185 visible_content_rect, |
| 193 clip_rect, | 186 clip_rect, |
| 194 is_clipped, | 187 is_clipped, |
| 195 opacity, | 188 opacity, |
| 196 blend_mode, | 189 blend_mode, |
| 197 sorting_context_id); | 190 sorting_context_id); |
| 198 | 191 |
| 199 surfaces::SharedQuadStatePtr mojo_sqs = surfaces::SharedQuadState::From(*sqs); | 192 SharedQuadStatePtr mojo_sqs = SharedQuadState::From(*sqs); |
| 200 ASSERT_FALSE(mojo_sqs.is_null()); | 193 ASSERT_FALSE(mojo_sqs.is_null()); |
| 201 EXPECT_EQ(Transform::From(content_to_target_transform), | 194 EXPECT_EQ(Transform::From(content_to_target_transform), |
| 202 mojo_sqs->content_to_target_transform); | 195 mojo_sqs->content_to_target_transform); |
| 203 EXPECT_EQ(Size::From(content_bounds), mojo_sqs->content_bounds); | 196 EXPECT_EQ(Size::From(content_bounds), mojo_sqs->content_bounds); |
| 204 EXPECT_EQ(Rect::From(visible_content_rect), mojo_sqs->visible_content_rect); | 197 EXPECT_EQ(Rect::From(visible_content_rect), mojo_sqs->visible_content_rect); |
| 205 EXPECT_EQ(Rect::From(clip_rect), mojo_sqs->clip_rect); | 198 EXPECT_EQ(Rect::From(clip_rect), mojo_sqs->clip_rect); |
| 206 EXPECT_EQ(is_clipped, mojo_sqs->is_clipped); | 199 EXPECT_EQ(is_clipped, mojo_sqs->is_clipped); |
| 207 EXPECT_EQ(opacity, mojo_sqs->opacity); | 200 EXPECT_EQ(opacity, mojo_sqs->opacity); |
| 208 EXPECT_EQ(sorting_context_id, mojo_sqs->sorting_context_id); | 201 EXPECT_EQ(sorting_context_id, mojo_sqs->sorting_context_id); |
| 209 } | 202 } |
| (...skipping 13 matching lines...) Expand all Loading... |
| 223 has_transparent_background); | 216 has_transparent_background); |
| 224 | 217 |
| 225 gfx::Transform content_to_target_transform; | 218 gfx::Transform content_to_target_transform; |
| 226 content_to_target_transform.Scale3d(0.3f, 0.7f, 0.9f); | 219 content_to_target_transform.Scale3d(0.3f, 0.7f, 0.9f); |
| 227 gfx::Size content_bounds(57, 39); | 220 gfx::Size content_bounds(57, 39); |
| 228 gfx::Rect visible_content_rect(3, 7, 28, 42); | 221 gfx::Rect visible_content_rect(3, 7, 28, 42); |
| 229 gfx::Rect clip_rect(9, 12, 21, 31); | 222 gfx::Rect clip_rect(9, 12, 21, 31); |
| 230 bool is_clipped = true; | 223 bool is_clipped = true; |
| 231 float opacity = 0.65f; | 224 float opacity = 0.65f; |
| 232 int sorting_context_id = 13; | 225 int sorting_context_id = 13; |
| 233 SkXfermode::Mode blend_mode = SkXfermode::kSrcOver_Mode; | 226 ::SkXfermode::Mode blend_mode = ::SkXfermode::kSrcOver_Mode; |
| 234 cc::SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); | 227 cc::SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); |
| 235 sqs->SetAll(content_to_target_transform, | 228 sqs->SetAll(content_to_target_transform, |
| 236 content_bounds, | 229 content_bounds, |
| 237 visible_content_rect, | 230 visible_content_rect, |
| 238 clip_rect, | 231 clip_rect, |
| 239 is_clipped, | 232 is_clipped, |
| 240 opacity, | 233 opacity, |
| 241 blend_mode, | 234 blend_mode, |
| 242 sorting_context_id); | 235 sorting_context_id); |
| 243 | 236 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 visible_rect, | 272 visible_rect, |
| 280 needs_blending, | 273 needs_blending, |
| 281 resource_id, | 274 resource_id, |
| 282 premultiplied_alpha, | 275 premultiplied_alpha, |
| 283 uv_top_left, | 276 uv_top_left, |
| 284 uv_bottom_right, | 277 uv_bottom_right, |
| 285 background_color, | 278 background_color, |
| 286 vertex_opacity, | 279 vertex_opacity, |
| 287 flipped); | 280 flipped); |
| 288 | 281 |
| 289 surfaces::PassPtr mojo_pass = surfaces::Pass::From(*pass); | 282 PassPtr mojo_pass = Pass::From(*pass); |
| 290 ASSERT_FALSE(mojo_pass.is_null()); | 283 ASSERT_FALSE(mojo_pass.is_null()); |
| 291 EXPECT_EQ(6, mojo_pass->id); | 284 EXPECT_EQ(6, mojo_pass->id); |
| 292 EXPECT_EQ(Rect::From(output_rect), mojo_pass->output_rect); | 285 EXPECT_EQ(Rect::From(output_rect), mojo_pass->output_rect); |
| 293 EXPECT_EQ(Rect::From(damage_rect), mojo_pass->damage_rect); | 286 EXPECT_EQ(Rect::From(damage_rect), mojo_pass->damage_rect); |
| 294 EXPECT_EQ(Transform::From(transform_to_root_target), | 287 EXPECT_EQ(Transform::From(transform_to_root_target), |
| 295 mojo_pass->transform_to_root_target); | 288 mojo_pass->transform_to_root_target); |
| 296 EXPECT_EQ(has_transparent_background, mojo_pass->has_transparent_background); | 289 EXPECT_EQ(has_transparent_background, mojo_pass->has_transparent_background); |
| 297 ASSERT_EQ(1u, mojo_pass->shared_quad_states.size()); | 290 ASSERT_EQ(1u, mojo_pass->shared_quad_states.size()); |
| 298 ASSERT_EQ(3u, mojo_pass->quads.size()); | 291 ASSERT_EQ(3u, mojo_pass->quads.size()); |
| 299 EXPECT_EQ(0, mojo_pass->quads[0]->shared_quad_state_index); | 292 EXPECT_EQ(0, mojo_pass->quads[0]->shared_quad_state_index); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 EXPECT_EQ(vertex_opacity[i], round_trip_texture_quad->vertex_opacity[i]) | 349 EXPECT_EQ(vertex_opacity[i], round_trip_texture_quad->vertex_opacity[i]) |
| 357 << i; | 350 << i; |
| 358 } | 351 } |
| 359 EXPECT_EQ(flipped, round_trip_texture_quad->flipped); | 352 EXPECT_EQ(flipped, round_trip_texture_quad->flipped); |
| 360 } | 353 } |
| 361 | 354 |
| 362 TEST(SurfaceLibTest, Mailbox) { | 355 TEST(SurfaceLibTest, Mailbox) { |
| 363 gpu::Mailbox mailbox; | 356 gpu::Mailbox mailbox; |
| 364 mailbox.Generate(); | 357 mailbox.Generate(); |
| 365 | 358 |
| 366 surfaces::MailboxPtr mojo_mailbox = surfaces::Mailbox::From(mailbox); | 359 MailboxPtr mojo_mailbox = Mailbox::From(mailbox); |
| 367 EXPECT_EQ(0, memcmp(mailbox.name, &mojo_mailbox->name.storage()[0], 64)); | 360 EXPECT_EQ(0, memcmp(mailbox.name, &mojo_mailbox->name.storage()[0], 64)); |
| 368 | 361 |
| 369 gpu::Mailbox round_trip_mailbox = mojo_mailbox.To<gpu::Mailbox>(); | 362 gpu::Mailbox round_trip_mailbox = mojo_mailbox.To<gpu::Mailbox>(); |
| 370 EXPECT_EQ(mailbox, round_trip_mailbox); | 363 EXPECT_EQ(mailbox, round_trip_mailbox); |
| 371 } | 364 } |
| 372 | 365 |
| 373 TEST(SurfaceLibTest, MailboxEmptyName) { | 366 TEST(SurfaceLibTest, MailboxEmptyName) { |
| 374 surfaces::MailboxPtr mojo_mailbox = surfaces::Mailbox::New(); | 367 MailboxPtr mojo_mailbox = Mailbox::New(); |
| 375 | 368 |
| 376 gpu::Mailbox converted_mailbox = mojo_mailbox.To<gpu::Mailbox>(); | 369 gpu::Mailbox converted_mailbox = mojo_mailbox.To<gpu::Mailbox>(); |
| 377 EXPECT_TRUE(converted_mailbox.IsZero()); | 370 EXPECT_TRUE(converted_mailbox.IsZero()); |
| 378 } | 371 } |
| 379 | 372 |
| 380 TEST(SurfaceLibTest, MailboxHolder) { | 373 TEST(SurfaceLibTest, MailboxHolder) { |
| 381 gpu::Mailbox mailbox; | 374 gpu::Mailbox mailbox; |
| 382 mailbox.Generate(); | 375 mailbox.Generate(); |
| 383 uint32_t texture_target = GL_TEXTURE_2D; | 376 uint32_t texture_target = GL_TEXTURE_2D; |
| 384 uint32_t sync_point = 7u; | 377 uint32_t sync_point = 7u; |
| 385 gpu::MailboxHolder holder(mailbox, texture_target, sync_point); | 378 gpu::MailboxHolder holder(mailbox, texture_target, sync_point); |
| 386 | 379 |
| 387 surfaces::MailboxHolderPtr mojo_holder = | 380 MailboxHolderPtr mojo_holder = MailboxHolder::From(holder); |
| 388 surfaces::MailboxHolder::From(holder); | |
| 389 EXPECT_EQ(texture_target, mojo_holder->texture_target); | 381 EXPECT_EQ(texture_target, mojo_holder->texture_target); |
| 390 EXPECT_EQ(sync_point, mojo_holder->sync_point); | 382 EXPECT_EQ(sync_point, mojo_holder->sync_point); |
| 391 | 383 |
| 392 gpu::MailboxHolder round_trip_holder = mojo_holder.To<gpu::MailboxHolder>(); | 384 gpu::MailboxHolder round_trip_holder = mojo_holder.To<gpu::MailboxHolder>(); |
| 393 EXPECT_EQ(mailbox, round_trip_holder.mailbox); | 385 EXPECT_EQ(mailbox, round_trip_holder.mailbox); |
| 394 EXPECT_EQ(texture_target, round_trip_holder.texture_target); | 386 EXPECT_EQ(texture_target, round_trip_holder.texture_target); |
| 395 EXPECT_EQ(sync_point, round_trip_holder.sync_point); | 387 EXPECT_EQ(sync_point, round_trip_holder.sync_point); |
| 396 } | 388 } |
| 397 | 389 |
| 398 TEST(SurfaceLibTest, TransferableResource) { | 390 TEST(SurfaceLibTest, TransferableResource) { |
| 399 uint32_t id = 7u; | 391 uint32_t id = 7u; |
| 400 cc::ResourceFormat format = cc::BGRA_8888; | 392 cc::ResourceFormat format = cc::BGRA_8888; |
| 401 uint32_t filter = 123u; | 393 uint32_t filter = 123u; |
| 402 gfx::Size size(17, 18); | 394 gfx::Size size(17, 18); |
| 403 gpu::MailboxHolder mailbox_holder; | 395 gpu::MailboxHolder mailbox_holder; |
| 404 bool is_repeated = false; | 396 bool is_repeated = false; |
| 405 ; | 397 ; |
| 406 bool is_software = false; | 398 bool is_software = false; |
| 407 cc::TransferableResource resource; | 399 cc::TransferableResource resource; |
| 408 resource.id = id; | 400 resource.id = id; |
| 409 resource.format = format; | 401 resource.format = format; |
| 410 resource.filter = filter; | 402 resource.filter = filter; |
| 411 resource.size = size; | 403 resource.size = size; |
| 412 resource.mailbox_holder = mailbox_holder; | 404 resource.mailbox_holder = mailbox_holder; |
| 413 resource.is_repeated = is_repeated; | 405 resource.is_repeated = is_repeated; |
| 414 resource.is_software = is_software; | 406 resource.is_software = is_software; |
| 415 | 407 |
| 416 surfaces::TransferableResourcePtr mojo_resource = | 408 TransferableResourcePtr mojo_resource = TransferableResource::From(resource); |
| 417 surfaces::TransferableResource::From(resource); | |
| 418 EXPECT_EQ(id, mojo_resource->id); | 409 EXPECT_EQ(id, mojo_resource->id); |
| 419 EXPECT_EQ(static_cast<surfaces::ResourceFormat>(format), | 410 EXPECT_EQ(static_cast<ResourceFormat>(format), |
| 420 mojo_resource->format); | 411 mojo_resource->format); |
| 421 EXPECT_EQ(filter, mojo_resource->filter); | 412 EXPECT_EQ(filter, mojo_resource->filter); |
| 422 EXPECT_EQ(Size::From(size), mojo_resource->size); | 413 EXPECT_EQ(Size::From(size), mojo_resource->size); |
| 423 EXPECT_EQ(is_repeated, mojo_resource->is_repeated); | 414 EXPECT_EQ(is_repeated, mojo_resource->is_repeated); |
| 424 EXPECT_EQ(is_software, mojo_resource->is_software); | 415 EXPECT_EQ(is_software, mojo_resource->is_software); |
| 425 | 416 |
| 426 cc::TransferableResource round_trip_resource = | 417 cc::TransferableResource round_trip_resource = |
| 427 mojo_resource.To<cc::TransferableResource>(); | 418 mojo_resource.To<cc::TransferableResource>(); |
| 428 EXPECT_EQ(id, round_trip_resource.id); | 419 EXPECT_EQ(id, round_trip_resource.id); |
| 429 EXPECT_EQ(format, round_trip_resource.format); | 420 EXPECT_EQ(format, round_trip_resource.format); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 442 uint32_t id = 5u; | 433 uint32_t id = 5u; |
| 443 uint32_t sync_point = 24u; | 434 uint32_t sync_point = 24u; |
| 444 int count = 2; | 435 int count = 2; |
| 445 bool lost = false; | 436 bool lost = false; |
| 446 cc::ReturnedResource resource; | 437 cc::ReturnedResource resource; |
| 447 resource.id = id; | 438 resource.id = id; |
| 448 resource.sync_point = sync_point; | 439 resource.sync_point = sync_point; |
| 449 resource.count = count; | 440 resource.count = count; |
| 450 resource.lost = lost; | 441 resource.lost = lost; |
| 451 | 442 |
| 452 surfaces::ReturnedResourcePtr mojo_resource = | 443 ReturnedResourcePtr mojo_resource = ReturnedResource::From(resource); |
| 453 surfaces::ReturnedResource::From(resource); | |
| 454 EXPECT_EQ(id, mojo_resource->id); | 444 EXPECT_EQ(id, mojo_resource->id); |
| 455 EXPECT_EQ(sync_point, mojo_resource->sync_point); | 445 EXPECT_EQ(sync_point, mojo_resource->sync_point); |
| 456 EXPECT_EQ(count, mojo_resource->count); | 446 EXPECT_EQ(count, mojo_resource->count); |
| 457 EXPECT_EQ(lost, mojo_resource->lost); | 447 EXPECT_EQ(lost, mojo_resource->lost); |
| 458 | 448 |
| 459 cc::ReturnedResource round_trip_resource = | 449 cc::ReturnedResource round_trip_resource = |
| 460 mojo_resource.To<cc::ReturnedResource>(); | 450 mojo_resource.To<cc::ReturnedResource>(); |
| 461 EXPECT_EQ(id, round_trip_resource.id); | 451 EXPECT_EQ(id, round_trip_resource.id); |
| 462 EXPECT_EQ(sync_point, round_trip_resource.sync_point); | 452 EXPECT_EQ(sync_point, round_trip_resource.sync_point); |
| 463 EXPECT_EQ(count, round_trip_resource.count); | 453 EXPECT_EQ(count, round_trip_resource.count); |
| 464 EXPECT_EQ(lost, round_trip_resource.lost); | 454 EXPECT_EQ(lost, round_trip_resource.lost); |
| 465 } | 455 } |
| 466 | 456 |
| 467 } // namespace | 457 } // namespace |
| 468 } // namespace mojo | 458 } // namespace mojo |
| OLD | NEW |