| 1 | module main |
| 2 | |
| 3 | import benchmark |
| 4 | import sim |
| 5 | import sim.args as simargs |
| 6 | import sim.img |
| 7 | |
| 8 | fn main() { |
| 9 | args := simargs.parse_args(sequential: true)! as simargs.SequentialArgs |
| 10 | |
| 11 | mut bmark := benchmark.start() |
| 12 | defer { |
| 13 | bmark.measure(@FN) |
| 14 | } |
| 15 | |
| 16 | mut writer := img.ppm_writer_for_fname(args.filename, img.image_settings_from_grid(args.grid))! |
| 17 | defer { |
| 18 | writer.close() |
| 19 | } |
| 20 | |
| 21 | handle_request := fn [mut writer] (request &sim.SimRequest) ! { |
| 22 | result := sim.compute_result(request) |
| 23 | pixel := img.compute_pixel(result) |
| 24 | return writer.handle_pixel(pixel) |
| 25 | } |
| 26 | |
| 27 | sim.run(args.params, grid: args.grid, on_request: sim.SimRequestHandler(handle_request)) |
| 28 | |
| 29 | writer.write()! |
| 30 | } |
| 31 | |