blob: 9ba63420e460ea12caaff226f4a6d05c2163e43e [file]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "gpu/ipc/common/shared_image_capabilities_mojom_traits.h"
namespace mojo {
// static
bool StructTraits<gpu::mojom::SharedImageCapabilitiesDataView,
gpu::SharedImageCapabilities>::
Read(gpu::mojom::SharedImageCapabilitiesDataView data,
gpu::SharedImageCapabilities* out) {
out->supports_scanout_shared_images = data.supports_scanout_shared_images();
#if BUILDFLAG(IS_WIN)
out->supports_scanout_shared_images_for_software_video_frames =
data.supports_scanout_shared_images_for_software_video_frames();
#endif
out->supports_luminance_shared_images =
data.supports_luminance_shared_images();
out->supports_r16_shared_images = data.supports_r16_shared_images();
out->supports_ycbcr_nv12_sampling = data.supports_ycbcr_nv12_sampling();
out->supports_ycbcr_p010_sampling = data.supports_ycbcr_p010_sampling();
out->is_r16f_supported = data.is_r16f_supported();
out->disable_r8_shared_images = data.disable_r8_shared_images();
out->disable_webgpu_shared_images = data.disable_webgpu_shared_images();
out->disable_one_component_textures = data.disable_one_component_textures();
out->shared_image_d3d = data.shared_image_d3d();
#if BUILDFLAG(IS_WIN)
out->shared_image_swap_chain = data.shared_image_swap_chain();
#endif
#if BUILDFLAG(IS_MAC)
out->texture_target_for_io_surfaces = data.texture_target_for_io_surfaces();
#endif
return true;
}
} // namespace mojo