use crate::{PlaneSlot, PropertyWrite};
#[must_use]
pub fn compute_canvas_writes(
slot: &PlaneSlot,
fb_id: u32,
canvas_w: u32,
canvas_h: u32,
) -> Vec<PropertyWrite> {
let mut writes = Vec::with_capacity(10);
let mut add = |property_id: u32, value: u64| {
writes.push(PropertyWrite {
object_id: slot.plane_id,
property_id,
value,
});
};
add(slot.fb_id_prop, u64::from(fb_id));
add(slot.crtc_id_prop, u64::from(slot.crtc_id));
add(slot.crtc_x_prop, 0);
add(slot.crtc_y_prop, 0);
add(slot.crtc_w_prop, u64::from(canvas_w));
add(slot.crtc_h_prop, u64::from(canvas_h));
add(slot.src_x_prop, 0);
add(slot.src_y_prop, 0);
add(slot.src_w_prop, u64::from(canvas_w) << 16);
add(slot.src_h_prop, u64::from(canvas_h) << 16);
writes
}