| 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 "mojo/converters/surfaces/surfaces_type_converters.h" | 5 #include "mojo/converters/surfaces/surfaces_type_converters.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "cc/output/compositor_frame.h" | 8 #include "cc/output/compositor_frame.h" |
| 9 #include "cc/output/delegated_frame_data.h" | 9 #include "cc/output/delegated_frame_data.h" |
| 10 #include "cc/quads/checkerboard_draw_quad.h" | |
| 11 #include "cc/quads/debug_border_draw_quad.h" | 10 #include "cc/quads/debug_border_draw_quad.h" |
| 12 #include "cc/quads/draw_quad.h" | 11 #include "cc/quads/draw_quad.h" |
| 13 #include "cc/quads/render_pass.h" | 12 #include "cc/quads/render_pass.h" |
| 14 #include "cc/quads/render_pass_draw_quad.h" | 13 #include "cc/quads/render_pass_draw_quad.h" |
| 15 #include "cc/quads/shared_quad_state.h" | 14 #include "cc/quads/shared_quad_state.h" |
| 16 #include "cc/quads/solid_color_draw_quad.h" | 15 #include "cc/quads/solid_color_draw_quad.h" |
| 17 #include "cc/quads/surface_draw_quad.h" | 16 #include "cc/quads/surface_draw_quad.h" |
| 18 #include "cc/quads/texture_draw_quad.h" | 17 #include "cc/quads/texture_draw_quad.h" |
| 19 #include "cc/quads/tile_draw_quad.h" | 18 #include "cc/quads/tile_draw_quad.h" |
| 20 #include "cc/quads/yuv_video_draw_quad.h" | 19 #include "cc/quads/yuv_video_draw_quad.h" |
| 21 #include "cc/surfaces/surface_id_allocator.h" | 20 #include "cc/surfaces/surface_id_allocator.h" |
| 22 #include "mojo/converters/geometry/geometry_type_converters.h" | 21 #include "mojo/converters/geometry/geometry_type_converters.h" |
| 23 #include "mojo/converters/transform/transform_type_converters.h" | 22 #include "mojo/converters/transform/transform_type_converters.h" |
| 24 | 23 |
| 25 namespace mojo { | 24 namespace mojo { |
| 26 | 25 |
| 27 #define ASSERT_ENUM_VALUES_EQUAL(value) \ | 26 #define ASSERT_ENUM_VALUES_EQUAL(value) \ |
| 28 COMPILE_ASSERT(cc::DrawQuad::value == static_cast<cc::DrawQuad::Material>( \ | 27 COMPILE_ASSERT(cc::DrawQuad::value == static_cast<cc::DrawQuad::Material>( \ |
| 29 MATERIAL_##value), \ | 28 MATERIAL_##value), \ |
| 30 value##_enum_value_matches) | 29 value##_enum_value_matches) |
| 31 | 30 |
| 32 ASSERT_ENUM_VALUES_EQUAL(CHECKERBOARD); | |
| 33 ASSERT_ENUM_VALUES_EQUAL(DEBUG_BORDER); | 31 ASSERT_ENUM_VALUES_EQUAL(DEBUG_BORDER); |
| 34 ASSERT_ENUM_VALUES_EQUAL(IO_SURFACE_CONTENT); | 32 ASSERT_ENUM_VALUES_EQUAL(IO_SURFACE_CONTENT); |
| 35 ASSERT_ENUM_VALUES_EQUAL(PICTURE_CONTENT); | 33 ASSERT_ENUM_VALUES_EQUAL(PICTURE_CONTENT); |
| 36 ASSERT_ENUM_VALUES_EQUAL(RENDER_PASS); | 34 ASSERT_ENUM_VALUES_EQUAL(RENDER_PASS); |
| 37 ASSERT_ENUM_VALUES_EQUAL(SOLID_COLOR); | 35 ASSERT_ENUM_VALUES_EQUAL(SOLID_COLOR); |
| 38 ASSERT_ENUM_VALUES_EQUAL(STREAM_VIDEO_CONTENT); | 36 ASSERT_ENUM_VALUES_EQUAL(STREAM_VIDEO_CONTENT); |
| 39 ASSERT_ENUM_VALUES_EQUAL(SURFACE_CONTENT); | 37 ASSERT_ENUM_VALUES_EQUAL(SURFACE_CONTENT); |
| 40 ASSERT_ENUM_VALUES_EQUAL(TEXTURE_CONTENT); | 38 ASSERT_ENUM_VALUES_EQUAL(TEXTURE_CONTENT); |
| 41 ASSERT_ENUM_VALUES_EQUAL(TILED_CONTENT); | 39 ASSERT_ENUM_VALUES_EQUAL(TILED_CONTENT); |
| 42 ASSERT_ENUM_VALUES_EQUAL(YUV_VIDEO_CONTENT); | 40 ASSERT_ENUM_VALUES_EQUAL(YUV_VIDEO_CONTENT); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 60 input->opacity, | 58 input->opacity, |
| 61 static_cast<::SkXfermode::Mode>(input->blend_mode), | 59 static_cast<::SkXfermode::Mode>(input->blend_mode), |
| 62 input->sorting_context_id); | 60 input->sorting_context_id); |
| 63 return state; | 61 return state; |
| 64 } | 62 } |
| 65 | 63 |
| 66 bool ConvertDrawQuad(const QuadPtr& input, | 64 bool ConvertDrawQuad(const QuadPtr& input, |
| 67 cc::SharedQuadState* sqs, | 65 cc::SharedQuadState* sqs, |
| 68 cc::RenderPass* render_pass) { | 66 cc::RenderPass* render_pass) { |
| 69 switch (input->material) { | 67 switch (input->material) { |
| 70 case MATERIAL_CHECKERBOARD: { | |
| 71 cc::CheckerboardDrawQuad* checkerboard_quad = | |
| 72 render_pass->CreateAndAppendDrawQuad<cc::CheckerboardDrawQuad>(); | |
| 73 checkerboard_quad->SetAll( | |
| 74 sqs, | |
| 75 input->rect.To<gfx::Rect>(), | |
| 76 input->opaque_rect.To<gfx::Rect>(), | |
| 77 input->visible_rect.To<gfx::Rect>(), | |
| 78 input->needs_blending, | |
| 79 input->checkerboard_quad_state->color.To<SkColor>(), | |
| 80 input->checkerboard_quad_state->scale); | |
| 81 break; | |
| 82 } | |
| 83 case MATERIAL_DEBUG_BORDER: { | 68 case MATERIAL_DEBUG_BORDER: { |
| 84 cc::DebugBorderDrawQuad* debug_border_quad = | 69 cc::DebugBorderDrawQuad* debug_border_quad = |
| 85 render_pass->CreateAndAppendDrawQuad<cc::DebugBorderDrawQuad>(); | 70 render_pass->CreateAndAppendDrawQuad<cc::DebugBorderDrawQuad>(); |
| 86 debug_border_quad->SetAll( | 71 debug_border_quad->SetAll( |
| 87 sqs, | 72 sqs, |
| 88 input->rect.To<gfx::Rect>(), | 73 input->rect.To<gfx::Rect>(), |
| 89 input->opaque_rect.To<gfx::Rect>(), | 74 input->opaque_rect.To<gfx::Rect>(), |
| 90 input->visible_rect.To<gfx::Rect>(), | 75 input->visible_rect.To<gfx::Rect>(), |
| 91 input->needs_blending, | 76 input->needs_blending, |
| 92 input->debug_border_quad_state->color.To<SkColor>(), | 77 input->debug_border_quad_state->color.To<SkColor>(), |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 quad->material = static_cast<Material>(input.material); | 252 quad->material = static_cast<Material>(input.material); |
| 268 quad->rect = Rect::From(input.rect); | 253 quad->rect = Rect::From(input.rect); |
| 269 quad->opaque_rect = Rect::From(input.opaque_rect); | 254 quad->opaque_rect = Rect::From(input.opaque_rect); |
| 270 quad->visible_rect = Rect::From(input.visible_rect); | 255 quad->visible_rect = Rect::From(input.visible_rect); |
| 271 quad->needs_blending = input.needs_blending; | 256 quad->needs_blending = input.needs_blending; |
| 272 // This is intentionally left set to an invalid value here. It's set when | 257 // This is intentionally left set to an invalid value here. It's set when |
| 273 // converting an entire pass since it's an index into the pass' shared quad | 258 // converting an entire pass since it's an index into the pass' shared quad |
| 274 // state list. | 259 // state list. |
| 275 quad->shared_quad_state_index = UINT32_MAX; | 260 quad->shared_quad_state_index = UINT32_MAX; |
| 276 switch (input.material) { | 261 switch (input.material) { |
| 277 case cc::DrawQuad::CHECKERBOARD: { | |
| 278 const cc::CheckerboardDrawQuad* checkerboard_quad = | |
| 279 cc::CheckerboardDrawQuad::MaterialCast(&input); | |
| 280 CheckerboardQuadStatePtr checkerboard_state = | |
| 281 CheckerboardQuadState::New(); | |
| 282 checkerboard_state->color = Color::From(checkerboard_quad->color); | |
| 283 checkerboard_state->scale = checkerboard_quad->scale; | |
| 284 quad->checkerboard_quad_state = checkerboard_state.Pass(); | |
| 285 break; | |
| 286 } | |
| 287 case cc::DrawQuad::DEBUG_BORDER: { | 262 case cc::DrawQuad::DEBUG_BORDER: { |
| 288 const cc::DebugBorderDrawQuad* debug_border_quad = | 263 const cc::DebugBorderDrawQuad* debug_border_quad = |
| 289 cc::DebugBorderDrawQuad::MaterialCast(&input); | 264 cc::DebugBorderDrawQuad::MaterialCast(&input); |
| 290 DebugBorderQuadStatePtr debug_border_state = | 265 DebugBorderQuadStatePtr debug_border_state = |
| 291 DebugBorderQuadState::New(); | 266 DebugBorderQuadState::New(); |
| 292 debug_border_state->color = Color::From(debug_border_quad->color); | 267 debug_border_state->color = Color::From(debug_border_quad->color); |
| 293 debug_border_state->width = debug_border_quad->width; | 268 debug_border_state->width = debug_border_quad->width; |
| 294 quad->debug_border_quad_state = debug_border_state.Pass(); | 269 quad->debug_border_quad_state = debug_border_state.Pass(); |
| 295 break; | 270 break; |
| 296 } | 271 } |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 628 if (!pass) | 603 if (!pass) |
| 629 return scoped_ptr<cc::CompositorFrame>(); | 604 return scoped_ptr<cc::CompositorFrame>(); |
| 630 frame_data->render_pass_list.push_back(pass.Pass()); | 605 frame_data->render_pass_list.push_back(pass.Pass()); |
| 631 } | 606 } |
| 632 scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); | 607 scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); |
| 633 frame->delegated_frame_data = frame_data.Pass(); | 608 frame->delegated_frame_data = frame_data.Pass(); |
| 634 return frame.Pass(); | 609 return frame.Pass(); |
| 635 } | 610 } |
| 636 | 611 |
| 637 } // namespace mojo | 612 } // namespace mojo |
| OLD | NEW |