use rusty_duplication::{FrameInfoExt, Scanner, VecCapturer};
use std::{fs::File, io::Write, thread, time::Duration};
fn main() {
let mut scanner = Scanner::new().unwrap();
let monitor = scanner.next().unwrap();
monitor.dxgi_output_desc().unwrap();
monitor.dxgi_outdupl_desc();
let mut capturer: VecCapturer = monitor.try_into().unwrap();
let dxgi_outdupl_desc = capturer.monitor().dxgi_outdupl_desc();
let dxgi_output_desc = capturer.monitor().dxgi_output_desc().unwrap();
println!(
"size: {}x{}",
dxgi_outdupl_desc.ModeDesc.Width, dxgi_outdupl_desc.ModeDesc.Height
);
println!(
"left: {}, top: {}, right: {}, bottom: {}",
dxgi_output_desc.DesktopCoordinates.left,
dxgi_output_desc.DesktopCoordinates.top,
dxgi_output_desc.DesktopCoordinates.right,
dxgi_output_desc.DesktopCoordinates.bottom
);
thread::sleep(Duration::from_millis(100));
let info = capturer.capture().unwrap();
if info.desktop_updated() {
println!("captured!");
}
if info.mouse_updated() {
println!("mouse updated!");
}
if info.pointer_shape_updated() {
println!("pointer shape updated!");
}
let mut file = File::create("capture.bin").unwrap();
file.write_all(&capturer.buffer).unwrap();
}