| Index: cc/ipc/compositor_frame_struct_traits.h
|
| diff --git a/cc/ipc/compositor_frame_struct_traits.h b/cc/ipc/compositor_frame_struct_traits.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ce3c67df0549e9bd1fbf49768db2b03227f68f41
|
| --- /dev/null
|
| +++ b/cc/ipc/compositor_frame_struct_traits.h
|
| @@ -0,0 +1,45 @@
|
| +// 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_COMPOSITOR_FRAME_STRUCT_TRAITS_H_
|
| +#define CC_IPC_COMPOSITOR_FRAME_STRUCT_TRAITS_H_
|
| +
|
| +#include "cc/ipc/compositor_frame.mojom.h"
|
| +#include "cc/output/compositor_frame.h"
|
| +
|
| +namespace mojo {
|
| +
|
| +template <>
|
| +struct StructTraits<cc::mojom::CompositorFrame,
|
| + std::unique_ptr<cc::CompositorFrame>> {
|
| + static const cc::CompositorFrameMetadata& metadata(
|
| + const std::unique_ptr<cc::CompositorFrame>& input) {
|
| + return input->metadata;
|
| + }
|
| +
|
| + static const cc::TransferableResourceArray& resources(
|
| + const std::unique_ptr<cc::CompositorFrame>& input) {
|
| + return input->delegated_frame_data->resource_list;
|
| + }
|
| +
|
| + static const cc::RenderPassList& passes(
|
| + const std::unique_ptr<cc::CompositorFrame>& input) {
|
| + return input->delegated_frame_data->render_pass_list;
|
| + }
|
| +
|
| + static bool Read(cc::mojom::CompositorFrameDataView data,
|
| + std::unique_ptr<cc::CompositorFrame>* out) {
|
| + *out = cc::CompositorFrame::Create();
|
| + if (!data.ReadMetadata(&(*out)->metadata))
|
| + return false;
|
| +
|
| + (*out)->delegated_frame_data.reset(new cc::DelegatedFrameData());
|
| + return data.ReadResources(&(*out)->delegated_frame_data->resource_list) &&
|
| + data.ReadPasses(&(*out)->delegated_frame_data->render_pass_list);
|
| + }
|
| +};
|
| +
|
| +} // namespace mojo
|
| +
|
| +#endif // CC_IPC_COMPOSITOR_FRAME_STRUCT_TRAITS_H_
|
|
|