summaryrefslogtreecommitdiff
path: root/Build/source/texk/ps2pk/pkout.h
blob: 218fdd60a917a5f2766165b8b2a98ad0d0db4e1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* 
 * FILE:    pkout.h
 *
 * PURPOSE: interface to te PK output functions (pkfile.c)
 *
 * COMMENT: See the pktest.c example program how to use the PK functions.
 *
 * VERSION: 1.7 (December 2014)
 *
 * AUTHOR:  Piet Tutelaers (rcpt@urc.tue.nl)
 */

/* A function for opening a pk file */
void pk_open(char *name);

/* A function for closing a pk file */
void pk_close(void);

/* A function for writing the preamble */
void pk_preamble(char *comment, /* comment string: source of font */
        float pointsize,        /* design size in points */
        int32_t checksum,       /* checksum */
        unsigned int h_res,     /* horizontal resolution (dpi) */
        unsigned int v_res);    /* vertical resolution (dpi) */

/* For packing a character */
void pk_char(int char_code, 	/* character code 0..255 */
        int32_t tfm_width,      /* TFM width of character */
        int h_escapement,       /* horizontal escapement in pixels */
   	unsigned int width, 	/* width of bounding box */
   	unsigned int height, 	/* height of bounding box */
   	int h_offset, 		/* horizontal offset to reference point */
   	int v_offset, 		/* vertical offset to reference point */
	int (*next_pixel)());	/* user's pixel generator */

/* Barebone postample */ 
void pk_postamble(void);

/* PS2PK postamble */
void ps2pk_postamble(char *fontname, /* The real FontName from the afm */
		  char *encname,     /* The actual name, not the filename */
		  int base_res,      /* basic resolution */
		  int h_res,	     /* Match against base_res for mag */
		  int v_res,	     /* Match against h_res for aspect_ratio */
		  float pointsize,   /* Used for fontfacebyte calculation */
		  char *args);       /* Essential ps2pk args */

/* Here are some definitions to play with pixels */
#define BLACK	1
#define WHITE   0
#define OTHER(pixel) (pixel==BLACK? WHITE: BLACK)