blob: dd6b118c8b0edd1e11caaae9383bf3eaec9b35e9 [file] [log] [blame]
// Copyright 2019 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 UI_GFX_MOJOM_GPU_EXTRA_INFO_MOJOM_TRAITS_H_
#define UI_GFX_MOJOM_GPU_EXTRA_INFO_MOJOM_TRAITS_H_
#include "base/component_export.h"
#include "ui/gfx/gpu_extra_info.h"
#include "ui/gfx/mojom/buffer_types_mojom_traits.h"
#include "ui/gfx/mojom/gpu_extra_info.mojom-shared.h"
#if defined(USE_OZONE)
#include "ui/ozone/buildflags.h"
#if BUILDFLAG(OZONE_PLATFORM_X11)
#define USE_OZONE_PLATFORM_X11
#endif
#endif
namespace mojo {
template <>
struct COMPONENT_EXPORT(GFX_SHARED_MOJOM_TRAITS)
StructTraits<gfx::mojom::ANGLEFeatureDataView, gfx::ANGLEFeature> {
static bool Read(gfx::mojom::ANGLEFeatureDataView data,
gfx::ANGLEFeature* out);
static const std::string& name(const gfx::ANGLEFeature& input) {
return input.name;
}
static const std::string& category(const gfx::ANGLEFeature& input) {
return input.category;
}
static const std::string& description(const gfx::ANGLEFeature& input) {
return input.description;
}
static const std::string& bug(const gfx::ANGLEFeature& input) {
return input.bug;
}
static const std::string& status(const gfx::ANGLEFeature& input) {
return input.status;
}
static const std::string& condition(const gfx::ANGLEFeature& input) {
return input.condition;
}
};
template <>
struct COMPONENT_EXPORT(GFX_SHARED_MOJOM_TRAITS)
StructTraits<gfx::mojom::GpuExtraInfoDataView, gfx::GpuExtraInfo> {
static bool Read(gfx::mojom::GpuExtraInfoDataView data,
gfx::GpuExtraInfo* out);
static const std::vector<gfx::ANGLEFeature>& angle_features(
const gfx::GpuExtraInfo& input) {
return input.angle_features;
}
#if defined(USE_OZONE_PLATFORM_X11) || defined(USE_X11)
static const std::vector<gfx::BufferUsageAndFormat>&
gpu_memory_buffer_support_x11(const gfx::GpuExtraInfo& input) {
return input.gpu_memory_buffer_support_x11;
}
#endif
};
} // namespace mojo
#endif // UI_GFX_MOJOM_GPU_EXTRA_INFO_MOJOM_TRAITS_H_