in Sources/CollectionsBenchmark/BenchmarkCLI/BenchmarkCLI+Render.swift [37:67]
func run() throws {
let input = URL(fileURLWithPath: self.input)
let output = URL(fileURLWithPath: self.output)
let results = try BenchmarkResults.load(from: input)
let tasks = try self.tasks.resolve(
allKnownTasks: results.alltaskIDs(),
ignoreLabels: false)
if self.dryRun {
tasks.forEach { print($0) }
return
}
let renderer = Graphics.bestAvailableRenderer
let theme = try options.themeSpec.resolve(with: renderer)
let chart = Chart(taskIDs: tasks,
in: results,
options: try options.chartOptions())
let graphics = chart.draw(
bounds: Rectangle(x: 0, y: 0, width: options.width, height: options.height),
theme: theme,
renderer: renderer)
let data = try renderer.render(
graphics,
format: output.pathExtension,
bitmapScale: options.scale)
try data.write(to: output, options: .atomic)
}