# requests

msg destroy = 0 {
}

msg attach = 1 {
    buffer: id(wl_buffer),
    x: i32,
    y: i32,
}

msg damage = 2 {
    x: i32,
    y: i32,
    width: i32,
    height: i32,
}

msg frame = 3 {
    callback: id(wl_callback),
}

msg set_opaque_region = 4 {
    region: id(wl_region),
}

msg set_input_region = 5 {
    region: id(wl_region),
}

msg commit = 6 {
}

msg set_buffer_transform = 7 {
    transform: i32,
}

msg set_buffer_scale = 8 {
    scale: i32,
}

msg damage_buffer = 9 {
    x: i32,
    y: i32,
    width: i32,
    height: i32,
}

msg offset = 10 {
    x: i32,
    y: i32,
}

# events

msg enter = 0 {
    output: id(wl_output),
}

msg leave = 1 {
    output: id(wl_output),
}

msg preferred_buffer_scale = 2 {
    factor: i32,
}

msg preferred_buffer_transform = 3 {
    transform: u32,
}
