| Index: cc/ipc/shared_quad_state_struct_traits.h
|
| diff --git a/cc/ipc/shared_quad_state_struct_traits.h b/cc/ipc/shared_quad_state_struct_traits.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..666bd5cd738d22acb3cc69730c5a6ab715ec82b9
|
| --- /dev/null
|
| +++ b/cc/ipc/shared_quad_state_struct_traits.h
|
| @@ -0,0 +1,74 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CC_IPC_SHARED_QUAD_STATE_STRUCT_TRAITS_H_
|
| +#define CC_IPC_SHARED_QUAD_STATE_STRUCT_TRAITS_H_
|
| +
|
| +#include "cc/ipc/shared_quad_state.mojom.h"
|
| +#include "cc/quads/shared_quad_state.h"
|
| +
|
| +namespace mojo {
|
| +
|
| +template <>
|
| +struct StructTraits<cc::mojom::SharedQuadState,
|
| + std::unique_ptr<cc::SharedQuadState>> {
|
| + static gfx::Transform quad_to_target_transform(
|
| + const std::unique_ptr<cc::SharedQuadState>& sqs) {
|
| + return sqs->quad_to_target_transform;
|
| + }
|
| +
|
| + static gfx::Size quad_layer_bounds(
|
| + const std::unique_ptr<cc::SharedQuadState>& sqs) {
|
| + return sqs->quad_layer_bounds;
|
| + }
|
| +
|
| + static gfx::Rect visible_quad_layer_rect(
|
| + const std::unique_ptr<cc::SharedQuadState>& sqs) {
|
| + return sqs->visible_quad_layer_rect;
|
| + }
|
| +
|
| + static gfx::Rect clip_rect(const std::unique_ptr<cc::SharedQuadState>& sqs) {
|
| + return sqs->clip_rect;
|
| + }
|
| +
|
| + static bool is_clipped(const std::unique_ptr<cc::SharedQuadState>& sqs) {
|
| + return sqs->is_clipped;
|
| + }
|
| +
|
| + static float opacity(const std::unique_ptr<cc::SharedQuadState>& sqs) {
|
| + return sqs->opacity;
|
| + }
|
| +
|
| + static cc::mojom::SkXfermode blend_mode(
|
| + const std::unique_ptr<cc::SharedQuadState>& sqs) {
|
| + return static_cast<cc::mojom::SkXfermode>(sqs->blend_mode);
|
| + }
|
| +
|
| + static int32_t sorting_context_id(
|
| + const std::unique_ptr<cc::SharedQuadState>& sqs) {
|
| + return sqs->sorting_context_id;
|
| + }
|
| +
|
| + static bool Read(cc::mojom::SharedQuadStateDataView data,
|
| + std::unique_ptr<cc::SharedQuadState>* out) {
|
| + std::unique_ptr<cc::SharedQuadState> sqs(new cc::SharedQuadState());
|
| + if (!data.ReadQuadToTargetTransform(&sqs->quad_to_target_transform) ||
|
| + !data.ReadQuadLayerBounds(&sqs->quad_layer_bounds) ||
|
| + !data.ReadVisibleQuadLayerRect(&sqs->visible_quad_layer_rect) ||
|
| + !data.ReadClipRect(&sqs->clip_rect)) {
|
| + return false;
|
| + }
|
| +
|
| + sqs->is_clipped = data.is_clipped();
|
| + sqs->opacity = data.opacity();
|
| + sqs->blend_mode = static_cast<SkXfermode::Mode>(data.blend_mode());
|
| + sqs->sorting_context_id = data.sorting_context_id();
|
| + *out = std::move(sqs);
|
| + return true;
|
| + }
|
| +};
|
| +
|
| +} // namespace mojo
|
| +
|
| +#endif // CC_IPC_SHARED_QUAD_STATE_STRUCT_TRAITS_H_
|
|
|