font/sprite: add corner pieces from Geometric Shapes block

◢ ◣ ◤ ◥ ◸ ◹ ◺ ◿
This commit is contained in:
Qwerasd
2025-06-10 12:11:59 -06:00
parent ad4facf8f1
commit 12ad0fa4b6
3 changed files with 128 additions and 0 deletions

View File

@ -581,6 +581,120 @@ fn draw(self: Box, alloc: Allocator, canvas: *font.sprite.Canvas, cp: u32) !void
// '▟'
0x259f => self.draw_quadrant(canvas, .{ .tr = true, .bl = true, .br = true }),
// '◢'
0x25e2 => self.draw_corner_triangle_shade(canvas, .br, .on),
// '◣'
0x25e3 => self.draw_corner_triangle_shade(canvas, .bl, .on),
// '◤'
0x25e4 => self.draw_corner_triangle_shade(canvas, .tl, .on),
// '◥'
0x25e5 => self.draw_corner_triangle_shade(canvas, .tr, .on),
// '◸'
0x25f8 => {
const thickness_px = Thickness.light.height(self.metrics.box_thickness);
// top edge
self.rect(
canvas,
0,
0,
self.metrics.cell_width,
thickness_px,
);
// left edge
self.rect(
canvas,
0,
0,
thickness_px,
self.metrics.cell_height -| 1,
);
// diagonal
self.draw_cell_diagonal(
canvas,
.lower_left,
.upper_right,
);
},
// '◹'
0x25f9 => {
const thickness_px = Thickness.light.height(self.metrics.box_thickness);
// top edge
self.rect(
canvas,
0,
0,
self.metrics.cell_width,
thickness_px,
);
// right edge
self.rect(
canvas,
self.metrics.cell_width -| thickness_px,
0,
self.metrics.cell_width,
self.metrics.cell_height -| 1,
);
// diagonal
self.draw_cell_diagonal(
canvas,
.upper_left,
.lower_right,
);
},
// '◺'
0x25fa => {
const thickness_px = Thickness.light.height(self.metrics.box_thickness);
// bottom edge
self.rect(
canvas,
0,
self.metrics.cell_height -| thickness_px,
self.metrics.cell_width,
self.metrics.cell_height,
);
// left edge
self.rect(
canvas,
0,
1,
thickness_px,
self.metrics.cell_height,
);
// diagonal
self.draw_cell_diagonal(
canvas,
.upper_left,
.lower_right,
);
},
// '◿'
0x25ff => {
const thickness_px = Thickness.light.height(self.metrics.box_thickness);
// bottom edge
self.rect(
canvas,
0,
self.metrics.cell_height -| thickness_px,
self.metrics.cell_width,
self.metrics.cell_height,
);
// right edge
self.rect(
canvas,
self.metrics.cell_width -| thickness_px,
1,
self.metrics.cell_width,
self.metrics.cell_height,
);
// diagonal
self.draw_cell_diagonal(
canvas,
.lower_left,
.upper_right,
);
},
0x2800...0x28ff => self.draw_braille(canvas, cp),
0x1fb00...0x1fb3b => self.draw_sextant(canvas, cp),
@ -3197,6 +3311,15 @@ fn testRenderAll(self: Box, alloc: Allocator, atlas: *font.Atlas) !void {
else => {},
}
}
// Geometric Shapes: filled and outlined corners
for ([_]u21{ '◢', '◣', '◤', '◥', '◸', '◹', '◺', '◿' }) |char| {
_ = try self.renderGlyph(
alloc,
atlas,
char,
);
}
}
test "render all sprites" {

View File

@ -190,6 +190,11 @@ const Kind = enum {
//
0x2580...0x259F,
// "Geometric Shapes" block
0x25e2...0x25e5, //
0x25f8...0x25fa, //
0x25ff, //
// "Braille" block
0x2800...0x28FF,

Binary file not shown.