stroke
Stroke path as a series of line segments. See Rect.stroke.
Only valid between Window.beginand Window.end.
Parameters
- path:Path
- Path
- opts:StrokeOptions
- StrokeOptions
Source
Implementation
pub fn stroke(path: Path, opts: StrokeOptions) void {
if (path.points.len == 0) {
return;
}
const cw = dvui.currentWindow();
if (opts.after or !cw.render_target.rendering) {
const new_path = path.dupe(cw.arena()) catch |err| {
dvui.logError(@src(), err, "Could not reallocate path for render command", .{});
return;
};
cw.addRenderCommand(.{ .pathStroke = .{ .path = new_path, .opts = opts } }, opts.after);
return;
}
var options = opts;
options.color = options.color.opacity(cw.alpha);
var triangles = path.strokeTriangles(cw.lifo(), options) catch |err| {
dvui.logError(@src(), err, "Could not get triangles for path", .{});
return;
};
defer triangles.deinit(cw.lifo());
dvui.renderTriangles(triangles, null) catch |err| {
dvui.logError(@src(), err, "Could not draw path, opts: {any}", .{opts});
return;
};
}