diff options
Diffstat (limited to 'chromium/ui/display/mojom')
4 files changed, 96 insertions, 0 deletions
diff --git a/chromium/ui/display/mojom/BUILD.gn b/chromium/ui/display/mojom/BUILD.gn index af12f462fb1..db1ab150193 100644 --- a/chromium/ui/display/mojom/BUILD.gn +++ b/chromium/ui/display/mojom/BUILD.gn @@ -9,6 +9,7 @@ mojom("mojom") { sources = [ "display.mojom", + "display_configuration_params.mojom", "display_constants.mojom", "display_layout.mojom", "display_mode.mojom", @@ -134,6 +135,18 @@ mojom("mojom") { traits_headers = [ "gamma_ramp_rgb_entry_mojom_traits.h" ] traits_public_deps = [ "//ui/display" ] }, + { + types = [ + { + mojom = "display.mojom.DisplayConfigurationParams" + cpp = "::display::DisplayConfigurationParams" + }, + ] + traits_sources = [ "display_configuration_params_mojom_traits.cc" ] + traits_headers = [ "display_configuration_params_mojom_traits.h" ] + traits_public_deps = [ "//ui/display" ] + traits_deps = [ "//ui/gfx/geometry" ] + }, ] cpp_typemaps += shared_cpp_typemaps diff --git a/chromium/ui/display/mojom/display_configuration_params.mojom b/chromium/ui/display/mojom/display_configuration_params.mojom new file mode 100644 index 00000000000..9817e7f4897 --- /dev/null +++ b/chromium/ui/display/mojom/display_configuration_params.mojom @@ -0,0 +1,15 @@ +// Copyright 2020 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. + +module display.mojom; + +import "ui/display/mojom/display_mode.mojom"; +import "ui/gfx/geometry/mojom/geometry.mojom"; + +// Corresponds to display::DisplayConfigurationParams. +struct DisplayConfigurationParams { + int64 id; + gfx.mojom.Point origin; + display.mojom.DisplayMode? mode; +}; diff --git a/chromium/ui/display/mojom/display_configuration_params_mojom_traits.cc b/chromium/ui/display/mojom/display_configuration_params_mojom_traits.cc new file mode 100644 index 00000000000..8f0cf48b631 --- /dev/null +++ b/chromium/ui/display/mojom/display_configuration_params_mojom_traits.cc @@ -0,0 +1,29 @@ +// Copyright 2020 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 "ui/display/mojom/display_configuration_params_mojom_traits.h" + +namespace mojo { + +// static +bool StructTraits<display::mojom::DisplayConfigurationParamsDataView, + display::DisplayConfigurationParams>:: + Read(display::mojom::DisplayConfigurationParamsDataView data, + display::DisplayConfigurationParams* out) { + gfx::Point origin; + if (!data.ReadOrigin(&origin)) + return false; + + base::Optional<std::unique_ptr<display::DisplayMode>> mode; + if (!data.ReadMode(&mode)) + return false; + + out->id = data.id(); + out->origin = origin; + out->mode = std::move(mode); + + return true; +} + +} // namespace mojo diff --git a/chromium/ui/display/mojom/display_configuration_params_mojom_traits.h b/chromium/ui/display/mojom/display_configuration_params_mojom_traits.h new file mode 100644 index 00000000000..736c9e7e002 --- /dev/null +++ b/chromium/ui/display/mojom/display_configuration_params_mojom_traits.h @@ -0,0 +1,39 @@ +// Copyright 2020 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_DISPLAY_MOJOM_DISPLAY_CONFIGURATION_PARAMS_MOJOM_TRAITS_H_ +#define UI_DISPLAY_MOJOM_DISPLAY_CONFIGURATION_PARAMS_MOJOM_TRAITS_H_ + +#include "ui/display/mojom/display_configuration_params.mojom.h" +#include "ui/display/types/display_configuration_params.h" +#include "ui/gfx/geometry/mojom/geometry_mojom_traits.h" +#include "ui/gfx/ipc/color/gfx_param_traits.h" + +namespace mojo { + +template <> +struct StructTraits<display::mojom::DisplayConfigurationParamsDataView, + display::DisplayConfigurationParams> { + static int64_t id( + const display::DisplayConfigurationParams& display_configuration_params) { + return display_configuration_params.id; + } + + static gfx::Point origin( + const display::DisplayConfigurationParams& display_configuration_params) { + return display_configuration_params.origin; + } + + static const base::Optional<std::unique_ptr<display::DisplayMode>>& mode( + const display::DisplayConfigurationParams& display_configuration_params) { + return display_configuration_params.mode; + } + + static bool Read(display::mojom::DisplayConfigurationParamsDataView data, + display::DisplayConfigurationParams* out); +}; + +} // namespace mojo + +#endif // UI_DISPLAY_MOJOM_DISPLAY_CONFIGURATION_PARAMS_MOJOM_TRAITS_H_ |