Blame src/fontwheeltest.c

Packit Service df60bb
Packit Service df60bb
#ifdef HAVE_CONFIG_H
Packit Service df60bb
#include "config.h"
Packit Service df60bb
#endif
Packit Service df60bb
Packit Service df60bb
#include <math.h>
Packit Service df60bb
#include "gd.h"
Packit Service df60bb
#define DEGTORAD(x) ( (x) * (2.0 * 3.14159265) / 360.0 )
Packit Service df60bb
Packit Service df60bb
void
Packit Service df60bb
doerr (FILE * err, const char *msg)
Packit Service df60bb
{
Packit Service df60bb
	if (err) {
Packit Service df60bb
		fprintf (err, "%s\n", msg);
Packit Service df60bb
		fflush (err);
Packit Service df60bb
	}
Packit Service df60bb
}
Packit Service df60bb
Packit Service df60bb
void
Packit Service df60bb
dowheel (gdImagePtr im, int color, char *fontfile, int fontsize,
Packit Service df60bb
         double angle, int x, int y, int offset, char *string)
Packit Service df60bb
{
Packit Service df60bb
	int brect[8];
Packit Service df60bb
	FILE *err;
Packit Service df60bb
	double curangrads, curang, x0, y0;
Packit Service df60bb
	char *cp;
Packit Service df60bb
Packit Service df60bb
	err = fopen ("err.out", "a");
Packit Service df60bb
	doerr (err, "------------- New fontwheel --------------");
Packit Service df60bb
	doerr (err, fontfile);
Packit Service df60bb
	doerr (err, string);
Packit Service df60bb
	doerr (err, "------------------------------------------");
Packit Service df60bb
Packit Service df60bb
	for (curang = 0.0; curang < 360.0; curang += angle) {
Packit Service df60bb
		curangrads = DEGTORAD(curang);
Packit Service df60bb
		x0 = x + cos (curangrads) * offset;
Packit Service df60bb
		y0 = y - sin (curangrads) * offset;
Packit Service df60bb
Packit Service df60bb
		/* The case of newlines is taken care of in the gdImageStringTTF call */
Packit Service df60bb
#if defined(OLDER_GD)
Packit Service df60bb
		cp = gdImageStringTTF (im, brect, color, fontfile, fontsize,
Packit Service df60bb
		                       curangrads, x0, y0, string);
Packit Service df60bb
#else
Packit Service df60bb
		cp = gdImageStringFT (im, brect, color, fontfile, fontsize,
Packit Service df60bb
		                      curangrads, x0, y0, string);
Packit Service df60bb
#endif
Packit Service df60bb
		if (cp)
Packit Service df60bb
			doerr (err, cp);
Packit Service df60bb
Packit Service df60bb
		gdImagePolygon (im, (gdPointPtr)brect, 4, color);
Packit Service df60bb
	}
Packit Service df60bb
Packit Service df60bb
	fclose (err);
Packit Service df60bb
}
Packit Service df60bb
Packit Service df60bb
#if 0
Packit Service df60bb
void
Packit Service df60bb
dolines (gdImagePtr im, int color, double incr, int x, int y, int offset,
Packit Service df60bb
         int length)
Packit Service df60bb
{
Packit Service df60bb
	double curang;
Packit Service df60bb
	double angle;
Packit Service df60bb
	double x0, x1, y0, y1;
Packit Service df60bb
	for (curang = 0.0; curang < 360.0; curang += incr) {
Packit Service df60bb
		angle = curang * (2.0 * 3.14159265) / 360.0;
Packit Service df60bb
		x0 = cos (angle) * offset + x;
Packit Service df60bb
		x1 = cos (angle) * (offset + length) + x;
Packit Service df60bb
		y0 = sin (angle) * offset + y;
Packit Service df60bb
		y1 = sin (angle) * (offset + length) + y;
Packit Service df60bb
		gdImageLine (im, x0, y0, x1, y1, color);
Packit Service df60bb
	}
Packit Service df60bb
}
Packit Service df60bb
#endif
Packit Service df60bb
Packit Service df60bb
void
Packit Service df60bb
dotest (char *font, int size, double incr,
Packit Service df60bb
        int w, int h, char *string, const char *filename)
Packit Service df60bb
{
Packit Service df60bb
	gdImagePtr im;
Packit Service df60bb
	FILE *out;
Packit Service df60bb
	int bg;
Packit Service df60bb
	int fc;
Packit Service df60bb
#if 0
Packit Service df60bb
	int lc;
Packit Service df60bb
#endif
Packit Service df60bb
	int xc = w / 2;
Packit Service df60bb
	int yc = h / 2;
Packit Service df60bb
Packit Service df60bb
	im = gdImageCreate (w, h);
Packit Service df60bb
	bg = gdImageColorAllocate (im, 0, 0, 0);
Packit Service df60bb
Packit Service df60bb
	gdImageFilledRectangle (im, 1, 1, w - 1, h - 1, bg);
Packit Service df60bb
Packit Service df60bb
	fc = gdImageColorAllocate (im, 255, 192, 192);
Packit Service df60bb
#if 0
Packit Service df60bb
	lc = gdImageColorAllocate (im, 192, 255, 255);
Packit Service df60bb
#endif
Packit Service df60bb
Packit Service df60bb
	out = fopen (filename, "wb");
Packit Service df60bb
Packit Service df60bb
	dowheel (im, fc, font, size, incr, xc, yc, 20, string);
Packit Service df60bb
#if 0
Packit Service df60bb
	dolines (im, lc, incr, xc, yc, 20, 120);
Packit Service df60bb
#endif
Packit Service df60bb
Packit Service df60bb
#if defined(HAVE_LIBPNG)
Packit Service df60bb
	gdImagePng (im, out);
Packit Service df60bb
#elif defined(HAVE_LIBJPEG)
Packit Service df60bb
	gdImageJpeg (im, out, -1);
Packit Service df60bb
#endif
Packit Service df60bb
Packit Service df60bb
	fclose (out);
Packit Service df60bb
}
Packit Service df60bb
Packit Service df60bb
int
Packit Service df60bb
main(void)
Packit Service df60bb
{
Packit Service df60bb
Packit Service df60bb
#if defined(HAVE_LIBPNG)
Packit Service df60bb
	dotest ("times", 16, 20.0, 400, 400, "Hello, there!",
Packit Service df60bb
	        "fontwheeltest1.png");
Packit Service df60bb
	dotest ("times", 16, 30.0, 400, 400, "Hello, there!",
Packit Service df60bb
	        "fontwheeltest2.png");
Packit Service df60bb
	dotest ("arial", 16, 45.0, 400, 400, "Hello, there!",
Packit Service df60bb
	        "fontwheeltest3.png");
Packit Service df60bb
	dotest ("arial", 16, 90.0, 400, 400, "Hello\nthere!",
Packit Service df60bb
	        "fontwheeltest4.png");
Packit Service df60bb
#elif defined(HAVE_LIBJPEG)
Packit Service df60bb
	dotest ("times", 16, 20.0, 400, 400, "Hello, there!",
Packit Service df60bb
	        "fontwheeltest1.jpeg");
Packit Service df60bb
	dotest ("times", 16, 30.0, 400, 400, "Hello, there!",
Packit Service df60bb
	        "fontwheeltest2.jpeg");
Packit Service df60bb
	dotest ("arial", 16, 45.0, 400, 400, "Hello, there!",
Packit Service df60bb
	        "fontwheeltest3.jpeg");
Packit Service df60bb
	dotest ("arial", 16, 90.0, 400, 400, "Hello\nthere!",
Packit Service df60bb
	        "fontwheeltest4.jpeg");
Packit Service df60bb
#else
Packit Service df60bb
	fprintf(stderr, "no PNG or JPEG support\n");
Packit Service df60bb
#endif
Packit Service df60bb
Packit Service df60bb
	return 0;
Packit Service df60bb
}