xref: /plan9/sys/src/libmemdraw/subfont.c (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
1*7dd7cddfSDavid du Colombier #include <u.h>
2*7dd7cddfSDavid du Colombier #include <libc.h>
3*7dd7cddfSDavid du Colombier #include <draw.h>
4*7dd7cddfSDavid du Colombier #include <memdraw.h>
5*7dd7cddfSDavid du Colombier 
6*7dd7cddfSDavid du Colombier Memsubfont*
allocmemsubfont(char * name,int n,int height,int ascent,Fontchar * info,Memimage * i)7*7dd7cddfSDavid du Colombier allocmemsubfont(char *name, int n, int height, int ascent, Fontchar *info, Memimage *i)
8*7dd7cddfSDavid du Colombier {
9*7dd7cddfSDavid du Colombier 	Memsubfont *f;
10*7dd7cddfSDavid du Colombier 
11*7dd7cddfSDavid du Colombier 	f = malloc(sizeof(Memsubfont));
12*7dd7cddfSDavid du Colombier 	if(f == 0)
13*7dd7cddfSDavid du Colombier 		return 0;
14*7dd7cddfSDavid du Colombier 	f->n = n;
15*7dd7cddfSDavid du Colombier 	f->height = height;
16*7dd7cddfSDavid du Colombier 	f->ascent = ascent;
17*7dd7cddfSDavid du Colombier 	f->info = info;
18*7dd7cddfSDavid du Colombier 	f->bits = i;
19*7dd7cddfSDavid du Colombier 	if(name)
20*7dd7cddfSDavid du Colombier 		f->name = strdup(name);
21*7dd7cddfSDavid du Colombier 	else
22*7dd7cddfSDavid du Colombier 		f->name = 0;
23*7dd7cddfSDavid du Colombier 	return f;
24*7dd7cddfSDavid du Colombier }
25*7dd7cddfSDavid du Colombier 
26*7dd7cddfSDavid du Colombier void
freememsubfont(Memsubfont * f)27*7dd7cddfSDavid du Colombier freememsubfont(Memsubfont *f)
28*7dd7cddfSDavid du Colombier {
29*7dd7cddfSDavid du Colombier 	if(f == 0)
30*7dd7cddfSDavid du Colombier 		return;
31*7dd7cddfSDavid du Colombier 	free(f->info);	/* note: f->info must have been malloc'ed! */
32*7dd7cddfSDavid du Colombier 	freememimage(f->bits);
33*7dd7cddfSDavid du Colombier 	free(f);
34*7dd7cddfSDavid du Colombier }
35