xref: /aosp_15_r20/external/crosvm/gpu_display/src/gpu_display_win/virtual_display_manager.rs (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1 // Copyright 2023 The ChromiumOS Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 use euclid::Box2D;
6 use euclid::Size2D;
7 use euclid::Transform2D;
8 
9 use super::HostWindowSpace;
10 use super::VirtualDisplaySpace;
11 
12 type HostWindowSize = Size2D<i32, HostWindowSpace>;
13 type VirtualDisplaySize = Size2D<i32, VirtualDisplaySpace>;
14 type HostToGuestTransform = Transform2D<f64, HostWindowSpace, VirtualDisplaySpace>;
15 
16 /// This struct is managing the host window to guest display coordinates transform.
17 pub struct NoopVirtualDisplayManager {
18     host_to_guest_transform: HostToGuestTransform,
19 }
20 
21 impl NoopVirtualDisplayManager {
new( _host_viewport_size: &HostWindowSize, _virtual_display_size: &VirtualDisplaySize, ) -> Self22     pub fn new(
23         _host_viewport_size: &HostWindowSize,
24         _virtual_display_size: &VirtualDisplaySize,
25     ) -> Self {
26         Self {
27             host_to_guest_transform: Default::default(),
28         }
29     }
30 
31     /// Returns the rectangle to show the virtual display in the host window coordinate.
get_virtual_display_projection_box(&self) -> Box2D<i32, HostWindowSpace>32     pub fn get_virtual_display_projection_box(&self) -> Box2D<i32, HostWindowSpace> {
33         Default::default()
34     }
35 
update_host_guest_transforms(&mut self, _host_viewport_size: &HostWindowSize)36     pub fn update_host_guest_transforms(&mut self, _host_viewport_size: &HostWindowSize) {}
37 
get_host_to_guest_transform(&self) -> &HostToGuestTransform38     pub fn get_host_to_guest_transform(&self) -> &HostToGuestTransform {
39         &self.host_to_guest_transform
40     }
41 }
42