blob: 0235fef472397718133bf221cd84a4430dbc2eff [file] [log] [blame]
// 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.
#include "services/viz/public/cpp/compositing/transferable_resource_mojom_traits.h"
#include "gpu/ipc/common/mailbox_holder_mojom_traits.h"
#include "gpu/ipc/common/mailbox_mojom_traits.h"
#include "gpu/ipc/common/sync_token_mojom_traits.h"
#include "services/viz/public/cpp/compositing/resource_id_mojom_traits.h"
#include "ui/gfx/geometry/mojom/geometry_mojom_traits.h"
#include "ui/gfx/mojom/color_space_mojom_traits.h"
#include "ui/gfx/mojom/hdr_metadata_mojom_traits.h"
namespace mojo {
// static
bool StructTraits<viz::mojom::TransferableResourceDataView,
viz::TransferableResource>::
Read(viz::mojom::TransferableResourceDataView data,
viz::TransferableResource* out) {
viz::ResourceId id;
if (!data.ReadSize(&out->size) || !data.ReadFormat(&out->format) ||
!data.ReadMailboxHolder(&out->mailbox_holder) ||
!data.ReadColorSpace(&out->color_space) ||
!data.ReadHdrMetadata(&out->hdr_metadata) ||
!data.ReadYcbcrInfo(&out->ycbcr_info) || !data.ReadId(&id)) {
return false;
}
out->id = id;
out->filter = data.filter();
out->read_lock_fences_enabled = data.read_lock_fences_enabled();
out->is_software = data.is_software();
out->is_overlay_candidate = data.is_overlay_candidate();
#if defined(OS_ANDROID)
out->is_backed_by_surface_texture = data.is_backed_by_surface_texture();
#endif
#if defined(OS_ANDROID) || defined(OS_WIN)
out->wants_promotion_hint = data.wants_promotion_hint();
#endif
return true;
}
} // namespace mojo