1//! Paints `scene::interface` through `draw` over OpenGL and writes `text-probe.png`, to
2//! set beside a Cocoa label's pixels.
3#![allow(deprecated)] // OpenGL is the only GPU API 10.6 has.
4mod context;
5mod scene;
6
7fn main() {
8 objc2::rc::autoreleasepool(|_| {
9 let _context = context::current();
10 let mut renderer = draw::Renderer::opengl().unwrap_or_else(|error| panic!("{error}"));
11 let target = renderer.target(scene::TEXT_SIZE).unwrap();
12 let ui = scene::interface(1.0);
13 let layers = ui.layers();
14 renderer.draw(&target, scene::TEXT_SIZE, [1.0; 4], &scene::interface_layers(&layers, 1.0)).unwrap();
15 let file = std::fs::File::create("text-probe.png").unwrap();
16 let mut encoder = png::Encoder::new(file, scene::TEXT_SIZE[0], scene::TEXT_SIZE[1]);
17 encoder.set_color(png::ColorType::Rgba);
18 encoder.write_header().unwrap().write_image_data(&renderer.read_pixels(&target).unwrap()).unwrap();
19 });
20}