| 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. |
| 4 | mod context; |
| 5 | mod scene; |
| 6 | |
| 7 | fn 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 | } |