SMOLNET PORTAL home about changes
ibasic rectangle drawing functions - ploot - simple plotting tools	Err	bitreich.org	70
hgit clone git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot	URL:git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot	bitreich.org	70
1Log	/scm/ploot/log.gph	bitreich.org	70
1Files	/scm/ploot/files.gph	bitreich.org	70
1Refs	/scm/ploot/refs.gph	bitreich.org	70
1Tags	/scm/ploot/tag	bitreich.org	70
1README	/scm/ploot/file/README.md.gph	bitreich.org	70
1LICENSE	/scm/ploot/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 6e13cd89684d0129aa13995c3f0e2ba4f0a7aae1	/scm/ploot/commit/6e13cd89684d0129aa13995c3f0e2ba4f0a7aae1.gph	bitreich.org	70
1parent 1fc2d491d5051732caac4426d73cb22c2d870f6d	/scm/ploot/commit/1fc2d491d5051732caac4426d73cb22c2d870f6d.gph	bitreich.org	70
hAuthor: Josuah Demangeon <mail@josuah.net>	URL:mailto:mail@josuah.net	bitreich.org	70
iDate:   Mon, 30 Apr 2018 11:33:21 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
ibasic rectangle drawing functions	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  D deffont.h                           |      27 ---------------------------	Err	bitreich.org	70
i  M font-14x7.h                         |      16 +++++++---------	Err	bitreich.org	70
i  M font.c                              |     113 +++++++++++++++++++++----------	Err	bitreich.org	70
i  A font.h                              |      29 +++++++++++++++++++++++++++++	Err	bitreich.org	70
i  D txt                                 |       0 	Err	bitreich.org	70
i	Err	bitreich.org	70
i5 files changed, 113 insertions(+), 72 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/deffont.h b/deffont.h	/scm/ploot/file/deffont.h.gph	bitreich.org	70
i@@ -1,27 +0,0 @@	Err	bitreich.org	70
i-#include <stddef.h>	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-#define _ 0	Err	bitreich.org	70
i-#define X 1	Err	bitreich.org	70
i-#define B(x) char glyph_ ## x[WIDTH * HEIGHT]	Err	bitreich.org	70
i-#define b(x) glyph_ ## x	Err	bitreich.org	70
i-#define NOPR NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL	Err	bitreich.org	70
i-#define NOPRINT NOPR, NOPR, NOPR, NOPR	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-#define FONT(x) char *font_ ## x[] = { \	Err	bitreich.org	70
i-        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i-        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i-        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i-        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i-        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i-        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i-        b(space), b(bang), b(double), b(hash), \	Err	bitreich.org	70
i-        b(dollar), b(percent), b(ampersand), b(single), \	Err	bitreich.org	70
i-        b(l_round), b(r_round), b(asterisk), b(plus), \	Err	bitreich.org	70
i-        b(coma), b(minus), b(dot), b(slash), \	Err	bitreich.org	70
i-        b(0), b(1), b(2), b(3), \	Err	bitreich.org	70
i-        b(4), b(5), b(6), b(7), \	Err	bitreich.org	70
i-        b(8), b(9), b(column), b(semicolumn), \	Err	bitreich.org	70
i-        b(l_angle), b(equal), b(r_angle), b(question), \	Err	bitreich.org	70
i-        b(column), b(semicolumn), b(l_angle), b(equal), \	Err	bitreich.org	70
i-        b(r_angle), b(question) \	Err	bitreich.org	70
i-}	Err	bitreich.org	70
1diff --git a/font-14x7.h b/font-14x7.h	/scm/ploot/file/font-14x7.h.gph	bitreich.org	70
i@@ -1,7 +1,5 @@	Err	bitreich.org	70
i-#include "deffont.h"	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-#define WIDTH 14	Err	bitreich.org	70
i-#define HEIGHT 7	Err	bitreich.org	70
i+#define FONT_WIDTH 14	Err	bitreich.org	70
i+#define FONT_HEIGHT 6	Err	bitreich.org	70
i 	Err	bitreich.org	70
i B(space) = {	Err	bitreich.org	70
i _        ,_,_,_,_,_,	Err	bitreich.org	70
i@@ -73,6 +71,7 @@ _        ,_,_,_,_,_	Err	bitreich.org	70
i 	Err	bitreich.org	70
i B(dollar) = {	Err	bitreich.org	70
i _        ,_,_,_,_,_,	Err	bitreich.org	70
i+_        ,_,_,_,_,_,	Err	bitreich.org	70
i _        ,_,_,X,_,_,	Err	bitreich.org	70
i _        ,_,X,X,X,_,	Err	bitreich.org	70
i _        ,X,_,X,_,X,	Err	bitreich.org	70
i@@ -85,21 +84,20 @@ _        ,X,_,X,_,X,	Err	bitreich.org	70
i _        ,_,X,X,X,_,	Err	bitreich.org	70
i _        ,_,_,X,_,_,	Err	bitreich.org	70
i _        ,_,_,_,_,_,	Err	bitreich.org	70
i-_        ,_,_,_,_,_	Err	bitreich.org	70
i };	Err	bitreich.org	70
i 	Err	bitreich.org	70
i B(percent) = {	Err	bitreich.org	70
i _        ,_,_,_,_,_,	Err	bitreich.org	70
i _        ,_,_,_,_,_,	Err	bitreich.org	70
i-_        ,_,_,_,_,X,	Err	bitreich.org	70
i+_        ,_,_,_,_,_,	Err	bitreich.org	70
i _        ,X,X,_,_,X,	Err	bitreich.org	70
i _        ,X,X,_,X,_,	Err	bitreich.org	70
i _        ,_,_,_,X,_,	Err	bitreich.org	70
i _        ,_,_,X,_,_,	Err	bitreich.org	70
i+_        ,_,_,X,_,_,	Err	bitreich.org	70
i _        ,_,X,_,_,_,	Err	bitreich.org	70
i _        ,_,X,_,X,X,	Err	bitreich.org	70
i _        ,X,_,_,X,X,	Err	bitreich.org	70
i-_        ,X,_,_,_,_,	Err	bitreich.org	70
i _        ,_,_,_,_,_,	Err	bitreich.org	70
i _        ,_,_,_,_,_,	Err	bitreich.org	70
i _        ,_,_,_,_,_	Err	bitreich.org	70
i@@ -381,7 +379,7 @@ B(6) = {	Err	bitreich.org	70
i _        ,_,_,_,_,_,	Err	bitreich.org	70
i _        ,_,_,_,_,_,	Err	bitreich.org	70
i _        ,_,X,X,X,_,	Err	bitreich.org	70
i-_        ,X,_,_,_,_,	Err	bitreich.org	70
i+_        ,X,_,_,_,X,	Err	bitreich.org	70
i _        ,X,_,_,_,_,	Err	bitreich.org	70
i _        ,X,_,_,_,_,	Err	bitreich.org	70
i _        ,X,X,X,X,_,	Err	bitreich.org	70
i@@ -438,7 +436,7 @@ _        ,X,_,_,_,X,	Err	bitreich.org	70
i _        ,_,X,X,X,X,	Err	bitreich.org	70
i _        ,_,_,_,_,X,	Err	bitreich.org	70
i _        ,_,_,_,_,X,	Err	bitreich.org	70
i-_        ,_,_,_,_,X,	Err	bitreich.org	70
i+_        ,X,_,_,_,X,	Err	bitreich.org	70
i _        ,_,X,X,X,_,	Err	bitreich.org	70
i _        ,_,_,_,_,_,	Err	bitreich.org	70
i _        ,_,_,_,_,_,	Err	bitreich.org	70
1diff --git a/font.c b/font.c	/scm/ploot/file/font.c.gph	bitreich.org	70
i@@ -9,63 +9,104 @@	Err	bitreich.org	70
i #include <stdlib.h>	Err	bitreich.org	70
i #include <string.h>	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-#include "arg.h"	Err	bitreich.org	70
i+#include "font.h"	Err	bitreich.org	70
i+#include "font-14x7.h"	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#define WIDTH 100	Err	bitreich.org	70
i+#define HEIGHT 100	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#define MIN(x, y) ((x) < (y) ? (x) : (y))	Err	bitreich.org	70
i+#define MAX(x, y) ((x) > (y) ? (x) : (y))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i typedef uint16_t Color[4];	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-enum { R, G, B, A };	Err	bitreich.org	70
i+typedef struct {	Err	bitreich.org	70
i+        Color *b;        /* buffer */	Err	bitreich.org	70
i+        int w;                /* width */	Err	bitreich.org	70
i+        int h;                /* height */	Err	bitreich.org	70
i+} Canvas;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-Color *canvas;	Err	bitreich.org	70
i+Color buffer[WIDTH * HEIGHT];	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-char *argv0;	Err	bitreich.org	70
i-int wflag = 0;	Err	bitreich.org	70
i-int hflag = 0;	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i+ffdraw_pixel(Canvas *can, Color c,	Err	bitreich.org	70
i+        int x, int y)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        memcpy(can->b + x + (can->h - 1 - y) * can->w, c, sizeof(*can->b));	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void	Err	bitreich.org	70
i-usage()	Err	bitreich.org	70
i+ffdraw_rectangle(Canvas *can, Color c,	Err	bitreich.org	70
i+        int x1, int y1,	Err	bitreich.org	70
i+        int x2, int y2)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        fputs("ploot -w width -h height <data.csv >image.ff\n", stderr);	Err	bitreich.org	70
i-        exit(1);	Err	bitreich.org	70
i+        int x, y, xmin, ymin, xmax, ymax;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        xmin = MIN(x1, x2); xmax = MAX(x1, x2);	Err	bitreich.org	70
i+        ymin = MIN(y1, y2); ymax = MAX(y1, y2);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        for (x = xmin; x <= xmax; x++)	Err	bitreich.org	70
i+                for (y = ymin; y <= ymax; y++)	Err	bitreich.org	70
i+                        ffdraw_pixel(can, c, x, y);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i+ffdraw_line(Canvas *can, Color c,	Err	bitreich.org	70
i+        int x1, int y1,	Err	bitreich.org	70
i+        int x2, int y2)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        int x, y;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        (void)c;	Err	bitreich.org	70
i+        (void)can;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        x = x1;	Err	bitreich.org	70
i+        y = y1;	Err	bitreich.org	70
i+        while (x < x2 && y < y2) {	Err	bitreich.org	70
i+                x++; y++;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void	Err	bitreich.org	70
i-ffdraw(Color *canvas, int w, int h)	Err	bitreich.org	70
i+ffdraw_fill(Canvas *can, Color c)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        Color col = { 0xffff, 0xffff, 0x0000, 0xffff };	Err	bitreich.org	70
i-        size_t n;	Err	bitreich.org	70
i+        ffdraw_rectangle(can, c, 0, 0, can->w - 1, can->h - 1);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        for (n = w * h; n > 0; n--)	Err	bitreich.org	70
i-                memcpy(canvas + n - 1, col, sizeof(col));	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i+ffdraw(Canvas *can)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        Color c1 = { 0x2222, 0x2222, 0x2222, 0xffff };	Err	bitreich.org	70
i+        Color c2 = { 0x3333, 0xffff, 0x8888, 0xffff };	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        ffdraw_fill(can, c1);	Err	bitreich.org	70
i+        ffdraw_rectangle(can, c2,	Err	bitreich.org	70
i+                0, 20,	Err	bitreich.org	70
i+                can->w - 10, 4);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i+usage(void)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        fprintf(stderr, "ploot <data.csv >image.ff\n");	Err	bitreich.org	70
i+        exit(1);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i int	Err	bitreich.org	70
i-main(int argc, char **argv)	Err	bitreich.org	70
i+main(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         uint32_t w, h;	Err	bitreich.org	70
i+        Canvas can;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        ARGBEGIN {	Err	bitreich.org	70
i-        case 'w':	Err	bitreich.org	70
i-                wflag = atoi(EARGF(usage()));	Err	bitreich.org	70
i-                break;	Err	bitreich.org	70
i-        case 'h':	Err	bitreich.org	70
i-                hflag = atoi(EARGF(usage()));	Err	bitreich.org	70
i-                break;	Err	bitreich.org	70
i-        } ARGEND;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        if (wflag == 0 || hflag == 0)	Err	bitreich.org	70
i-                usage();	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        if ((canvas = calloc(wflag * hflag, sizeof(*canvas))) == NULL) {	Err	bitreich.org	70
i-                perror("allocating memory for the canvas");	Err	bitreich.org	70
i-                return 1;	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i-	Err	bitreich.org	70
i+        can.b = buffer;	Err	bitreich.org	70
i+        can.w = WIDTH;	Err	bitreich.org	70
i+        can.h = HEIGHT;	Err	bitreich.org	70
i+        w = htonl(WIDTH);	Err	bitreich.org	70
i+        h = htonl(HEIGHT);	Err	bitreich.org	70
i         fputs("farbfeld", stdout);	Err	bitreich.org	70
i-        w = htonl(wflag);	Err	bitreich.org	70
i-        h = htonl(hflag);	Err	bitreich.org	70
i         fwrite(&w, sizeof(w), 1, stdout);	Err	bitreich.org	70
i         fwrite(&h, sizeof(h), 1, stdout);	Err	bitreich.org	70
i-        ffdraw(canvas, wflag, hflag);	Err	bitreich.org	70
i-        fwrite(canvas, wflag * hflag, sizeof(*canvas), stdout);	Err	bitreich.org	70
i+        ffdraw(&can);	Err	bitreich.org	70
i+        fwrite(can.b, WIDTH * HEIGHT, sizeof(*can.b), stdout);	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
1diff --git a/font.h b/font.h	/scm/ploot/file/font.h.gph	bitreich.org	70
i@@ -0,0 +1,29 @@	Err	bitreich.org	70
i+#include <stddef.h>	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/*	Err	bitreich.org	70
i+ * Macros to make the fonts header file more readable.	Err	bitreich.org	70
i+ */	Err	bitreich.org	70
i+#define _ 0	Err	bitreich.org	70
i+#define X 1	Err	bitreich.org	70
i+#define B(x) char glyph_ ## x[FONT_WIDTH * FONT_HEIGHT]	Err	bitreich.org	70
i+#define b(x) glyph_ ## x	Err	bitreich.org	70
i+#define NOPR NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL	Err	bitreich.org	70
i+#define NOPRINT NOPR, NOPR, NOPR, NOPR	Err	bitreich.org	70
i+#define FONT(x) char *font_ ## x[] = { \	Err	bitreich.org	70
i+        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i+        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i+        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i+        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i+        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i+        NULL, NULL, NULL, NULL, \	Err	bitreich.org	70
i+        b(space), b(bang), b(double), b(hash), \	Err	bitreich.org	70
i+        b(dollar), b(percent), b(ampersand), b(single), \	Err	bitreich.org	70
i+        b(l_round), b(r_round), b(asterisk), b(plus), \	Err	bitreich.org	70
i+        b(coma), b(minus), b(dot), b(slash), \	Err	bitreich.org	70
i+        b(0), b(1), b(2), b(3), \	Err	bitreich.org	70
i+        b(4), b(5), b(6), b(7), \	Err	bitreich.org	70
i+        b(8), b(9), b(column), b(semicolumn), \	Err	bitreich.org	70
i+        b(l_angle), b(equal), b(r_angle), b(question), \	Err	bitreich.org	70
i+        b(column), b(semicolumn), b(l_angle), b(equal), \	Err	bitreich.org	70
i+        b(r_angle), b(question) \	Err	bitreich.org	70
i+}	Err	bitreich.org	70
1diff --git a/txt b/txt	/scm/ploot/file/txt.gph	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/ploot/commit/6e13cd89684d0129...
Content-Typetext/plain; charset=utf-8