blob: 92c869036f9a632fa91e943ea03a6902923cf3e9 [file] [log] [blame]
// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_GFX_MOJOM_HDR_METADATA_MOJOM_TRAITS_H_
#define UI_GFX_MOJOM_HDR_METADATA_MOJOM_TRAITS_H_
#include "ui/gfx/hdr_metadata.h"
#include "ui/gfx/mojom/hdr_metadata.mojom.h"
namespace mojo {
template <>
struct EnumTraits<gfx::mojom::HDRMode, gfx::HDRMode> {
static gfx::mojom::HDRMode ToMojom(gfx::HDRMode input) {
switch (input) {
case gfx::HDRMode::kDefault:
return gfx::mojom::HDRMode::kDefault;
case gfx::HDRMode::kExtended:
return gfx::mojom::HDRMode::kExtended;
}
NOTREACHED();
return gfx::mojom::HDRMode::kDefault;
}
static bool FromMojom(gfx::mojom::HDRMode input, gfx::HDRMode* out) {
switch (input) {
case gfx::mojom::HDRMode::kDefault:
*out = gfx::HDRMode::kDefault;
return true;
case gfx::mojom::HDRMode::kExtended:
*out = gfx::HDRMode::kExtended;
return true;
}
NOTREACHED();
return false;
}
};
template <>
struct StructTraits<gfx::mojom::ColorVolumeMetadataDataView,
gfx::ColorVolumeMetadata> {
static const SkColorSpacePrimaries& primaries(
const gfx::ColorVolumeMetadata& input) {
return input.primaries;
}
static float luminance_max(const gfx::ColorVolumeMetadata& input) {
return input.luminance_max;
}
static float luminance_min(const gfx::ColorVolumeMetadata& input) {
return input.luminance_min;
}
static bool Read(gfx::mojom::ColorVolumeMetadataDataView data,
gfx::ColorVolumeMetadata* output);
};
template <>
struct StructTraits<gfx::mojom::HDRMetadataDataView, gfx::HDRMetadata> {
static unsigned max_content_light_level(const gfx::HDRMetadata& input) {
return input.max_content_light_level;
}
static unsigned max_frame_average_light_level(const gfx::HDRMetadata& input) {
return input.max_frame_average_light_level;
}
static const gfx::ColorVolumeMetadata& color_volume_metadata(
const gfx::HDRMetadata& input) {
return input.color_volume_metadata;
}
static bool Read(gfx::mojom::HDRMetadataDataView data,
gfx::HDRMetadata* output);
};
} // namespace mojo
#endif // UI_GFX_MOJOM_HDR_METADATA_MOJOM_TRAITS_H_