Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(539)

Side by Side Diff: components/mus/public/cpp/surfaces/surfaces_type_converters.cc

Issue 2028573003: Implement gfx::Transform StructTraits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missing build file Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "components/mus/public/cpp/surfaces/surfaces_type_converters.h" 5 #include "components/mus/public/cpp/surfaces/surfaces_type_converters.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <utility> 10 #include <utility>
11 11
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "cc/output/compositor_frame.h" 13 #include "cc/output/compositor_frame.h"
14 #include "cc/output/compositor_frame_metadata.h" 14 #include "cc/output/compositor_frame_metadata.h"
15 #include "cc/output/delegated_frame_data.h" 15 #include "cc/output/delegated_frame_data.h"
16 #include "cc/quads/debug_border_draw_quad.h" 16 #include "cc/quads/debug_border_draw_quad.h"
17 #include "cc/quads/draw_quad.h" 17 #include "cc/quads/draw_quad.h"
18 #include "cc/quads/render_pass.h" 18 #include "cc/quads/render_pass.h"
19 #include "cc/quads/render_pass_draw_quad.h" 19 #include "cc/quads/render_pass_draw_quad.h"
20 #include "cc/quads/shared_quad_state.h" 20 #include "cc/quads/shared_quad_state.h"
21 #include "cc/quads/solid_color_draw_quad.h" 21 #include "cc/quads/solid_color_draw_quad.h"
22 #include "cc/quads/surface_draw_quad.h" 22 #include "cc/quads/surface_draw_quad.h"
23 #include "cc/quads/texture_draw_quad.h" 23 #include "cc/quads/texture_draw_quad.h"
24 #include "cc/quads/tile_draw_quad.h" 24 #include "cc/quads/tile_draw_quad.h"
25 #include "cc/quads/yuv_video_draw_quad.h" 25 #include "cc/quads/yuv_video_draw_quad.h"
26 #include "cc/surfaces/surface_id_allocator.h" 26 #include "cc/surfaces/surface_id_allocator.h"
27 #include "components/mus/public/cpp/surfaces/custom_surface_converter.h" 27 #include "components/mus/public/cpp/surfaces/custom_surface_converter.h"
28 #include "ui/gfx/mojo/transform_type_converters.h"
29 28
30 using mus::mojom::Color; 29 using mus::mojom::Color;
31 using mus::mojom::ColorPtr; 30 using mus::mojom::ColorPtr;
32 using mus::mojom::CompositorFrame; 31 using mus::mojom::CompositorFrame;
33 using mus::mojom::CompositorFramePtr; 32 using mus::mojom::CompositorFramePtr;
34 using mus::mojom::CompositorFrameMetadata; 33 using mus::mojom::CompositorFrameMetadata;
35 using mus::mojom::CompositorFrameMetadataPtr; 34 using mus::mojom::CompositorFrameMetadataPtr;
36 using mus::mojom::DebugBorderQuadState; 35 using mus::mojom::DebugBorderQuadState;
37 using mus::mojom::DebugBorderQuadStatePtr; 36 using mus::mojom::DebugBorderQuadStatePtr;
38 using mus::mojom::Pass; 37 using mus::mojom::Pass;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 "REC_601 enum value must match"); 82 "REC_601 enum value must match");
84 // TODO(jamesr): Add REC_709 and JPEG to the YUVColorSpace enum upstream in 83 // TODO(jamesr): Add REC_709 and JPEG to the YUVColorSpace enum upstream in
85 // mojo. 84 // mojo.
86 85
87 namespace { 86 namespace {
88 87
89 cc::SharedQuadState* ConvertSharedQuadState( 88 cc::SharedQuadState* ConvertSharedQuadState(
90 const mus::mojom::SharedQuadStatePtr& input, 89 const mus::mojom::SharedQuadStatePtr& input,
91 cc::RenderPass* render_pass) { 90 cc::RenderPass* render_pass) {
92 cc::SharedQuadState* state = render_pass->CreateAndAppendSharedQuadState(); 91 cc::SharedQuadState* state = render_pass->CreateAndAppendSharedQuadState();
93 state->SetAll(input->quad_to_target_transform.To<gfx::Transform>(), 92 state->SetAll(input->quad_to_target_transform, input->quad_layer_bounds,
94 input->quad_layer_bounds, input->visible_quad_layer_rect, 93 input->visible_quad_layer_rect, input->clip_rect,
95 input->clip_rect, input->is_clipped, input->opacity, 94 input->is_clipped, input->opacity,
96 static_cast<::SkXfermode::Mode>(input->blend_mode), 95 static_cast<::SkXfermode::Mode>(input->blend_mode),
97 input->sorting_context_id); 96 input->sorting_context_id);
98 return state; 97 return state;
99 } 98 }
100 99
101 bool ConvertDrawQuad(const QuadPtr& input, 100 bool ConvertDrawQuad(const QuadPtr& input,
102 const CompositorFrameMetadataPtr& metadata, 101 const CompositorFrameMetadataPtr& metadata,
103 cc::SharedQuadState* sqs, 102 cc::SharedQuadState* sqs,
104 cc::RenderPass* render_pass, 103 cc::RenderPass* render_pass,
105 CustomSurfaceConverter* custom_converter) { 104 CustomSurfaceConverter* custom_converter) {
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 NOTREACHED() << "Unsupported material " << input.material; 342 NOTREACHED() << "Unsupported material " << input.material;
344 } 343 }
345 return quad; 344 return quad;
346 } 345 }
347 346
348 // static 347 // static
349 mus::mojom::SharedQuadStatePtr 348 mus::mojom::SharedQuadStatePtr
350 TypeConverter<mus::mojom::SharedQuadStatePtr, cc::SharedQuadState>::Convert( 349 TypeConverter<mus::mojom::SharedQuadStatePtr, cc::SharedQuadState>::Convert(
351 const cc::SharedQuadState& input) { 350 const cc::SharedQuadState& input) {
352 mus::mojom::SharedQuadStatePtr state = SharedQuadState::New(); 351 mus::mojom::SharedQuadStatePtr state = SharedQuadState::New();
353 state->quad_to_target_transform = 352 state->quad_to_target_transform = input.quad_to_target_transform;
354 Transform::From(input.quad_to_target_transform);
355 state->quad_layer_bounds = input.quad_layer_bounds; 353 state->quad_layer_bounds = input.quad_layer_bounds;
356 state->visible_quad_layer_rect = input.visible_quad_layer_rect; 354 state->visible_quad_layer_rect = input.visible_quad_layer_rect;
357 state->clip_rect = input.clip_rect; 355 state->clip_rect = input.clip_rect;
358 state->is_clipped = input.is_clipped; 356 state->is_clipped = input.is_clipped;
359 state->opacity = input.opacity; 357 state->opacity = input.opacity;
360 state->blend_mode = static_cast<mus::mojom::SkXfermode>(input.blend_mode); 358 state->blend_mode = static_cast<mus::mojom::SkXfermode>(input.blend_mode);
361 state->sorting_context_id = input.sorting_context_id; 359 state->sorting_context_id = input.sorting_context_id;
362 return state; 360 return state;
363 } 361 }
364 362
365 // static 363 // static
366 PassPtr TypeConverter<PassPtr, cc::RenderPass>::Convert( 364 PassPtr TypeConverter<PassPtr, cc::RenderPass>::Convert(
367 const cc::RenderPass& input) { 365 const cc::RenderPass& input) {
368 PassPtr pass = Pass::New(); 366 PassPtr pass = Pass::New();
369 pass->id = input.id; 367 pass->id = input.id;
370 pass->output_rect = input.output_rect; 368 pass->output_rect = input.output_rect;
371 pass->damage_rect = input.damage_rect; 369 pass->damage_rect = input.damage_rect;
372 pass->transform_to_root_target = 370 pass->transform_to_root_target = input.transform_to_root_target;
373 Transform::From(input.transform_to_root_target);
374 pass->has_transparent_background = input.has_transparent_background; 371 pass->has_transparent_background = input.has_transparent_background;
375 Array<QuadPtr> quads(input.quad_list.size()); 372 Array<QuadPtr> quads(input.quad_list.size());
376 Array<mus::mojom::SharedQuadStatePtr> shared_quad_state( 373 Array<mus::mojom::SharedQuadStatePtr> shared_quad_state(
377 input.shared_quad_state_list.size()); 374 input.shared_quad_state_list.size());
378 const cc::SharedQuadState* last_sqs = nullptr; 375 const cc::SharedQuadState* last_sqs = nullptr;
379 cc::SharedQuadStateList::ConstIterator next_sqs_iter = 376 cc::SharedQuadStateList::ConstIterator next_sqs_iter =
380 input.shared_quad_state_list.begin(); 377 input.shared_quad_state_list.begin();
381 for (auto iter = input.quad_list.cbegin(); iter != input.quad_list.cend(); 378 for (auto iter = input.quad_list.cbegin(); iter != input.quad_list.cend();
382 ++iter) { 379 ++iter) {
383 const cc::DrawQuad& quad = **iter; 380 const cc::DrawQuad& quad = **iter;
(...skipping 16 matching lines...) Expand all
400 } 397 }
401 398
402 // static 399 // static
403 std::unique_ptr<cc::RenderPass> ConvertToRenderPass( 400 std::unique_ptr<cc::RenderPass> ConvertToRenderPass(
404 const PassPtr& input, 401 const PassPtr& input,
405 const CompositorFrameMetadataPtr& metadata, 402 const CompositorFrameMetadataPtr& metadata,
406 CustomSurfaceConverter* custom_converter) { 403 CustomSurfaceConverter* custom_converter) {
407 std::unique_ptr<cc::RenderPass> pass = cc::RenderPass::Create( 404 std::unique_ptr<cc::RenderPass> pass = cc::RenderPass::Create(
408 input->shared_quad_states.size(), input->quads.size()); 405 input->shared_quad_states.size(), input->quads.size());
409 pass->SetAll(input->id, input->output_rect, input->damage_rect, 406 pass->SetAll(input->id, input->output_rect, input->damage_rect,
410 input->transform_to_root_target.To<gfx::Transform>(), 407 input->transform_to_root_target,
411 input->has_transparent_background); 408 input->has_transparent_background);
412 for (size_t i = 0; i < input->shared_quad_states.size(); ++i) { 409 for (size_t i = 0; i < input->shared_quad_states.size(); ++i) {
413 ConvertSharedQuadState(input->shared_quad_states[i], pass.get()); 410 ConvertSharedQuadState(input->shared_quad_states[i], pass.get());
414 } 411 }
415 cc::SharedQuadStateList::Iterator sqs_iter = 412 cc::SharedQuadStateList::Iterator sqs_iter =
416 pass->shared_quad_state_list.begin(); 413 pass->shared_quad_state_list.begin();
417 for (size_t i = 0; i < input->quads.size(); ++i) { 414 for (size_t i = 0; i < input->quads.size(); ++i) {
418 QuadPtr quad = std::move(input->quads[i]); 415 QuadPtr quad = std::move(input->quads[i]);
419 while (quad->shared_quad_state_index > sqs_iter.index()) { 416 while (quad->shared_quad_state_index > sqs_iter.index()) {
420 ++sqs_iter; 417 ++sqs_iter;
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 } 549 }
553 550
554 // static 551 // static
555 std::unique_ptr<cc::CompositorFrame> 552 std::unique_ptr<cc::CompositorFrame>
556 TypeConverter<std::unique_ptr<cc::CompositorFrame>, 553 TypeConverter<std::unique_ptr<cc::CompositorFrame>,
557 CompositorFramePtr>::Convert(const CompositorFramePtr& input) { 554 CompositorFramePtr>::Convert(const CompositorFramePtr& input) {
558 return ConvertToCompositorFrame(input, nullptr); 555 return ConvertToCompositorFrame(input, nullptr);
559 } 556 }
560 557
561 } // namespace mojo 558 } // namespace mojo
OLDNEW
« no previous file with comments | « components/mus/public/cpp/surfaces/BUILD.gn ('k') | components/mus/public/cpp/surfaces/surfaces_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698