subfont man page on Plan9

Man page or keyword search:  
man Server   549 pages
apropos Keyword Search (all sections)
Output format
Plan9 logo
[printable version]

SUBFONT(2)							    SUBFONT(2)

NAME
       allocsubfont, freesubfont, installsubfont, lookupsubfont, uninstallsub‐
       font, subfontname, readsubfont, readsubfonti, writesubfont,  stringsub‐
       font, strsubfontwidth, mkfont - subfont manipulation

SYNOPSIS
       #include <u.h>
       #include <libc.h>
       #include <draw.h>

       Subfont* allocsubfont(char *name, int n, int height, int ascent,
		Fontchar *info, Image *i)

       void	freesubfont(Subfont *f)

       void	installsubfont(char *name, Subfont *f)

       Subfont* lookupsubfont(Subfont *f)

       void	uninstallsubfont(Subfont *f)

       Subfont* readsubfont(Display *d, char *name, int fd, int dolock)

       Subfont* readsubfonti(Display *d, char *name, int fd, Image *im,
		  int dolock)

       int	writesubfont(int fd, Subfont *f)

       Point	stringsubfont(Image *dst, Point p, Image *src,
		Subfont *f, char *str)

       Point	strsubfontwidth(Subfont *f, char *s)

       Font*	mkfont(Subfont *f, Rune min)

DESCRIPTION
       Subfonts are the components of fonts that hold the character images.  A
       font comprises an array of subfonts; see cachechars(2).	A new  Subfont
       is  allocated and initialized with allocsubfont.	 See cachechars(2) for
       the meaning of n, height, ascent, and  info,  and  the  arrangement  of
       characters in image i.  The name is used to identify the subfont in the
       subfont cache; see the descriptions  lookupsubfont  and	installsubfont
       (q.v.).	 The  appropriate fields of the returned Subfont structure are
       set to the passed arguments, and the image is registered as  a  subfont
       with the graphics device draw(3).  Allocsubfont returns 0 on failure.

       Freesubfont  frees a subfont and all its associated structure including
       the associated image.  Since freesbufont	 calls	free  on  f->info,  if
       f->info was not allocated by malloc(2) it should be zeroed before call‐
       ing subffree.

       A number of subfonts are kept in external files.	  The  convention  for
       naming subfont files is:

	      /lib/font/bit/name/class.size.depth

       where size is approximately the height in pixels of the lower case let‐
       ters (without ascenders or descenders).	If there is only  one  version
       of  the	subfont,  the .depth extension is elided.  Class describes the
       range of runes encoded in the subfont: ascii, latin1, greek, etc.

       Subfonts are cached within the program, so  a  subfont  shared  between
       fonts  will be loaded only once.	 Installsubfont stores subfont f under
       the given name, typically the file name from which it was read.	 Unin‐
       stallsubfont  removes  the subfont from the cache.  Finally, lookupsub‐
       font searches for  a subfont with the  given  name  in  the  cache  and
       returns it, or nil if no such subfont exists.

       Subfontname  is	used  to  locate subfonts given their names within the
       fonts.  The default version constructs a name  given  the  cfname,  its
       name  within  the  font,	 fname,	 the name of the font, and the maximum
       depth suitable for this subfont.	 This  interface  allows  a  partially
       specified  name within a font to be resolved at run-time to the name of
       a file holding a suitable subfont.  Although it is principally  a  rou‐
       tine  internal  to  the	library, subfontname may be substituted by the
       application to provide a less file-oriented subfont naming scheme.

       The format of a subfont file is described in font(6).  Briefly, it con‐
       tains  a	 image	with  all  the characters in it, followed by a subfont
       header, followed by character information.  Readsubfont reads a subfont
       from  the file descriptor fd.  The name is used to identify the font in
       the cache.  The dolock argument specifies whether  the  routine	should
       synchronize  use	 of  the  Display  with	 other	processes; for single-
       threaded applications it may always be  zero.   Readsubfonti  does  the
       same  for  a subfont whose associated image is already in memory; it is
       passed as the argument im.  In other words, readsubfonti reads only the
       header and character information from the file descriptor.

       Writesubfont  writes  on fd the part of a subfont file that comes after
       the image.  It should be preceded by a call to writeimage (see allocim‐
       age(2)).

       Stringsubfont  is  analogous  to	 string	 (see  draw(2))	 for subfonts.
       Rather than use the underlying font caching primitives, it  calls  draw
       for  each  character.  It is intended for stand-alone environments such
       as operating system kernels.  Strsubfontwidth returns the width of  the
       string  s  in as it would appear if drawn with stringsubfont in Subfont
       f.

       Mkfont takes as argument a Subfont s and returns a pointer  to  a  Font
       that maps the character images in s into the Runes min to min+s->n-1.

FILES
       /lib/font/bit
	      bitmap font file tree

SOURCE
       /sys/src/libdraw

SEE ALSO
       graphics(2), allocimage(2), draw(2), cachechars(2), image(6), font(6)

DIAGNOSTICS
       All of the functions use the graphics error function (see graphics(2)).

								    SUBFONT(2)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Plan9

List of man pages available for Plan9

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net