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