Writes the current context window to logs/current_context_window (uses a symlink to a session ID). This PR was unfortunately generated by a different LLM and did a ton of superficial reformating, it's actually a fairly small and benign change, but I don't want to roll back everything. Hope that's ok.
61 lines
2.0 KiB
Rust
61 lines
2.0 KiB
Rust
use core_graphics::display::CGDisplay;
|
|
|
|
fn main() {
|
|
let display = CGDisplay::main();
|
|
let image = display.image().expect("Failed to capture screen");
|
|
|
|
println!("CGImage properties:");
|
|
println!(" Width: {}", image.width());
|
|
println!(" Height: {}", image.height());
|
|
println!(" Bits per component: {}", image.bits_per_component());
|
|
println!(" Bits per pixel: {}", image.bits_per_pixel());
|
|
println!(" Bytes per row: {}", image.bytes_per_row());
|
|
|
|
let data = image.data();
|
|
let expected_size = image.width() * image.height() * 4;
|
|
println!(" Data length: {}", data.len());
|
|
println!(" Expected (w*h*4): {}", expected_size);
|
|
|
|
// Check if there's padding in rows
|
|
let bytes_per_row = image.bytes_per_row();
|
|
let width = image.width();
|
|
let expected_bytes_per_row = width * 4;
|
|
println!("\nRow alignment:");
|
|
println!(" Actual bytes per row: {}", bytes_per_row);
|
|
println!(" Expected (width * 4): {}", expected_bytes_per_row);
|
|
println!(
|
|
" Padding per row: {}",
|
|
bytes_per_row - expected_bytes_per_row
|
|
);
|
|
|
|
// Sample some pixels from different locations
|
|
println!("\nFirst 3 pixels (raw bytes):");
|
|
for i in 0..3 {
|
|
let offset = i * 4;
|
|
println!(
|
|
" Pixel {}: [{:3}, {:3}, {:3}, {:3}]",
|
|
i,
|
|
data[offset],
|
|
data[offset + 1],
|
|
data[offset + 2],
|
|
data[offset + 3]
|
|
);
|
|
}
|
|
|
|
// Check a pixel from the middle
|
|
let mid_row = image.height() / 2;
|
|
let mid_col = image.width() / 2;
|
|
let mid_offset = (mid_row * bytes_per_row + mid_col * 4) as usize;
|
|
println!("\nMiddle pixel (row {}, col {}):", mid_row, mid_col);
|
|
println!(" Offset: {}", mid_offset);
|
|
if mid_offset + 3 < data.len() as usize {
|
|
println!(
|
|
" Bytes: [{:3}, {:3}, {:3}, {:3}]",
|
|
data[mid_offset],
|
|
data[mid_offset + 1],
|
|
data[mid_offset + 2],
|
|
data[mid_offset + 3]
|
|
);
|
|
}
|
|
}
|