ref: d2f22e757da666296b82b7f7592d4b061b28272b
parent: 7bb3106f2d5b80e142ceb853fbec8399c07368f2
author: sirjofri <sirjofri@sirjofri.de>
date: Mon Feb 16 16:59:18 EST 2026
adds border around default card
--- a/cardgen.c
+++ b/cardgen.c
@@ -68,6 +68,7 @@
Memimage *memred;
Memimage *memgreen;
+Memimage *memagrey;
Memsubfont *memfont;
int fontheight;
int debug = 0;
@@ -213,6 +214,47 @@
}
static void
+drawemptycard(Memimage *mi)
+{+ Point p;
+ Rectangle r;
+
+ /* offsets and radii are adjusted for pixel perfect size */
+
+ /* black border */
+ p = Pt(cardrad*2+1, cardrad*2+1);
+ memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2+1, memagrey, ZP, SoverD);
+ p = Pt(cardwid-cardrad*2-1, cardrad*2+1);
+ memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2+1, memagrey, ZP, SoverD);
+ p = Pt(cardwid-cardrad*2-1, cardhgt-cardrad*2-1);
+ memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2+1, memagrey, ZP, SoverD);
+ p = Pt(cardrad*2+1, cardhgt-cardrad*2-1);
+ memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2+1, memagrey, ZP, SoverD);
+ r.min = Pt(cardrad*2, 0);
+ r.max = Pt(cardwid-cardrad*2, cardhgt);
+ memdraw(mi, r, memagrey, ZP, nil, ZP, S);
+ r.min = Pt(0, cardrad*2);
+ r.max = Pt(cardwid, cardhgt-cardrad*2);
+ memdraw(mi, r, memagrey, ZP, nil, ZP, S);
+
+ /* white card */
+ p = Pt(cardrad*2+1, cardrad*2+1);
+ memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2, memwhite, ZP, SoverD);
+ p = Pt(cardwid-cardrad*2-2, cardrad*2+1);
+ memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2, memwhite, ZP, SoverD);
+ p = Pt(cardwid-cardrad*2-1, cardhgt-cardrad*2-1);
+ memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2-1, memwhite, ZP, SoverD);
+ p = Pt(cardrad*2+1, cardhgt-cardrad*2-2);
+ memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2, memwhite, ZP, SoverD);
+ r.min = Pt(cardrad*2+1, 1);
+ r.max = Pt(cardwid-cardrad*2-1, cardhgt-1);
+ memdraw(mi, r, memwhite, ZP, nil, ZP, S);
+ r.min = Pt(1, cardrad*2+1);
+ r.max = Pt(cardwid-1, cardhgt-cardrad*2-1);
+ memdraw(mi, r, memwhite, ZP, nil, ZP, S);
+}
+
+static void
drawborder(Memimage *mi)
{memimageline(mi,
@@ -245,8 +287,6 @@
int fhearts;
int fclubs;
int fspades;
- Rectangle r;
- Point p;
fcard = create("tcard", OWRITE, 0664);if (fcard < 0)
@@ -274,21 +314,7 @@
sysfatal("%r");memfillcolor(mi, DTransparent);
- p = Pt(cardrad*2, cardrad*2);
- memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2, memwhite, ZP, SoverD);
- p = Pt(cardwid-cardrad*2, cardrad*2);
- memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2, memwhite, ZP, SoverD);
- p = Pt(cardwid-cardrad*2, cardhgt-cardrad*2);
- memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2, memwhite, ZP, SoverD);
- p = Pt(cardrad*2, cardhgt-cardrad*2);
- memimageline(mi, p, p, Enddisc, Enddisc, cardrad*2, memwhite, ZP, SoverD);
- r.min = Pt(cardrad*2, 0);
- r.max = Pt(cardwid-cardrad*2, cardhgt);
- memdraw(mi, r, memwhite, ZP, nil, ZP, S);
- r.min = Pt(0, cardrad*2);
- r.max = Pt(cardwid, cardhgt-cardrad*2);
- memdraw(mi, r, memwhite, ZP, nil, ZP, S);
-
+ drawemptycard(mi);
FINISH(fcard)
mi = allocmemimage(Rect(-1, -1, symwid+1, symhgt+1), RGBA32);
@@ -451,6 +477,11 @@
memfillcolor(memgreen, 0x00CC00FF);
memgreen->flags |= Frepl;
memgreen->clipr = memblack->clipr;
+
+ memagrey = allocmemimage(Rect(0, 0, 1, 1), RGBA32);
+ memfillcolor(memagrey, 0x00000088);
+ memagrey->flags |= Frepl;
+ memagrey->clipr = memblack->clipr;
if (fontfile) {memfont = openmemsubfont(fontfile, 0);
--
⑨