Attention is currently required from: Mitsuru Oshima.
Thomas Lukaszewicz would like Mitsuru Oshima to review this change.
[wayland] Add zaura_output_metrics_manager global
This CL adds a new global interface to the aura-shell extension.
This extension is responsible for sending a complete set of metrics
needed to accurately represent WaylandOutput client-side.
On the client the necessary metrics are captured in the
WaylandOutput::Metrics struct. The events defined under the
zaura_output_metrics_manager global capture all the information
necessary to populate this WaylandOutput::Metrics struct.
These output metrics are stored in an output_id => Metrics map
client side.
Follow up CLs will integrate this into WaylandOutput such that
it pulls from these stored output metrics in situations where
it has not yet received all necessary metrics from the server
via its various output extensions (xdg_output, zaura_output).
This CL also adds the missing |name| to WaylandOutput::Metrics.
Bug: 1408304
Change-Id: Ida237018e644695229a3f70f7d17f3d911cd04df
---
M components/exo/wayland/clients/client_helper.cc
M components/exo/wayland/clients/client_helper.h
M components/exo/wayland/clients/test/client_version_test.cc
M components/exo/wayland/protocol/aura-shell.xml
M components/exo/wayland/server.cc
M components/exo/wayland/wayland_display_observer.cc
M components/exo/wayland/wl_output.cc
M components/exo/wayland/zaura_shell.cc
M components/exo/wayland/zaura_shell.h
M ui/ozone/platform/wayland/BUILD.gn
M ui/ozone/platform/wayland/common/wayland_object.cc
M ui/ozone/platform/wayland/common/wayland_object.h
M ui/ozone/platform/wayland/host/wayland_connection.cc
M ui/ozone/platform/wayland/host/wayland_connection.h
M ui/ozone/platform/wayland/host/wayland_output.h
M ui/ozone/platform/wayland/host/wayland_output_manager.cc
M ui/ozone/platform/wayland/host/wayland_output_manager.h
A ui/ozone/platform/wayland/host/wayland_zaura_output_metrics_manager.cc
A ui/ozone/platform/wayland/host/wayland_zaura_output_metrics_manager.h
A ui/ozone/platform/wayland/host/wayland_zaura_output_metrics_manager_unittest.cc
M ui/ozone/platform/wayland/test/test_wayland_server_thread.cc
M ui/ozone/platform/wayland/test/test_wayland_server_thread.h
A ui/ozone/platform/wayland/test/test_zaura_output_metrics_manager.cc
A ui/ozone/platform/wayland/test/test_zaura_output_metrics_manager.h
24 files changed, 903 insertions(+), 2 deletions(-)
To view, visit change 4286784. To unsubscribe, or for help writing mail filters, visit settings.
Attention is currently required from: Mitsuru Oshima.
1 comment:
Patchset:
Oshima could you PTAL.
Sorry for the large diff, I considered splitting the client and server side changes but it seemed like it would be easier to understand how this will work with both in the same CL. A lot of this is also just boilerplate + tests.
This gives clients immediate initial state for output globals - the follow up is still a WIP pending some things that still need to be resolved with IsReady() for the various output classes and tests.
To view, visit change 4286784. To unsubscribe, or for help writing mail filters, visit settings.
Attention is currently required from: Thomas Lukaszewicz.
4 comments:
Patchset:
as I explain in the sync, can you create a separate CL for client side? I *think* this one is probably fine as this is very first CL that introduces new protocol, but want to be safer.
File components/exo/wayland/protocol/aura-shell.xml:
Patch Set #17, Line 1194: output/display state immediately following the bind of a wl_output.
can you also describe that client should expect that all information arrives before wl_output's event?
Patch Set #17, Line 1276: summary="denominator of the scaling factor of output" />
I know you took this from existing logic. It turns out that using rational number isn't enough as it can't represent the exactly same value that is in IEEE standard,
so we should use uint instead and do reinterpret_cast.
(as we do in other protocols now, e.g.[1])
File components/exo/wayland/zaura_shell.cc:
Patch Set #17, Line 1075: // aura_output_metrics_manager_interface:
since this is a global object that is independent of the rest of aura shell protocol, it may be cleaner to have a separate file.
To view, visit change 4286784. To unsubscribe, or for help writing mail filters, visit settings.