diff options
Diffstat (limited to 'static/netbsd/man9/wsfont.9')
| -rw-r--r-- | static/netbsd/man9/wsfont.9 | 247 |
1 files changed, 247 insertions, 0 deletions
diff --git a/static/netbsd/man9/wsfont.9 b/static/netbsd/man9/wsfont.9 new file mode 100644 index 00000000..e1795c68 --- /dev/null +++ b/static/netbsd/man9/wsfont.9 @@ -0,0 +1,247 @@ +.\" $NetBSD: wsfont.9,v 1.18 2012/01/13 23:09:51 wiz Exp $ +.\" +.\" Copyright (c) 2001 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Gregory McGarry. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd January 13, 2012 +.Dt WSFONT 9 +.Os +.Sh NAME +.Nm wsfont , +.Nm wsfont_init , +.Nm wsfont_matches , +.Nm wsfont_find , +.Nm wsfont_add , +.Nm wsfont_remove , +.Nm wsfont_enum , +.Nm wsfont_lock , +.Nm wsfont_unlock , +.Nm wsfont_map_unichar +.Nd wscons font support +.Sh SYNOPSIS +.In dev/wscons/wsconsio.h +.In dev/wsfont/wsfont.h +.Ft void +.Fn wsfont_init "void" +.Ft int +.Fn wsfont_matches "struct wsdisplay_font *font" "const char *name" \ +"int width" "int height" "int stride" "int flags" +.Ft int +.Fn wsfont_find "const char *name" "int width" "int height" "int stride" \ +"int bitorder" "int byteorder" "int flags" +.Ft int +.Fn wsfont_add "struct wsdisplay_font *font" "int copy" +.Ft int +.Fn wsfont_remove "int cookie" +.Ft void +.Fn wsfont_enum "void (*callback)(const char *, int, int, int)" +.Ft int +.Fn wsfont_lock "int cookie" "struct wsdisplay_font **ptr" +.Ft int +.Fn wsfont_unlock "int cookie" +.Ft int +.Fn wsfont_map_unichar "struct wsdisplay_font *font" "int c" +.Sh DESCRIPTION +The +.Nm +module is a component of the +.Xr wscons 9 +framework to provide access to display fonts. +Fonts may be loaded dynamically into the kernel or included statically +in the kernel at compile time. +Display drivers which emulate a glass-tty console on a bit-mapped +display can add, remove and find fonts for use by device-dependent +blitter operations. +.Pp +The primary data type for manipulating fonts is the +.Em wsdisplay_font +structure in +.Pa dev/wscons/wsconsio.h : +.Bd -literal +struct wsdisplay_font { + const char *name; /* font name */ + int firstchar; + int numchars; /* size of font table */ + int encoding; /* font encoding */ + u_int fontwidth; /* character width */ + u_int fontheight; /* character height */ + u_int stride; + int bitorder; + int byteorder; + void *data; /* pointer to font table */ +}; +.Ed +.Pp +The maximum font table size is +.Em WSDISPLAY_MAXFONTSZ . +.Pp +The +.Nm +framework supports fonts with the following encodings: +.Bl -tag -width compact +.It Dv WSDISPLAY_FONTENC_ISO +ISO-encoded fonts. +.It Dv WSDISPLAY_FONTENC_IBM +IBM-encoded fonts commonly available for IBM CGA, EGA and VGA display +adapters. +.It Dv WSDISPLAY_FONTENC_PCVT +PCVT-encoding fonts distributed as part of the old PCVT terminal +emulation driver. +.It Dv WSDISPLAY_FONTENC_ISO7 +ISO-encoded Greek fonts. +.It Dv WSDISPLAY_FONTENC_ISO2 +ISO-encoded East European fonts. +.El +.Sh FUNCTIONS +.Bl -tag -width compact +.It Fn wsfont_init "void" +Initialise the font list with the built-in fonts. +.It Fn wsfont_matches "font" "name" "width" "height" "stride" +Matches the font +.Fa font +with the specifications +.Fa name , +.Fa width , +.Fa height , +.Fa stride +and +.Fa flags . +Return zero if not matched and non-zero if matched. +The +.Fa flags +parameter has the same meaning as in +.Fn wsfont_find . +.It Fn wsfont_find "name" "width" "height" "stride" "bitorder" "byteorder" "flags" +Find the font called +.Fa name +from the fonts loaded into the kernel. +The font aspect is specified by +.Fa width , +.Fa height , +and +.Fa stride . +If +.Fn wsfont_find +is called with any of the parameters as 0, it indicates that we don't +care about that aspect of the font. +If the font is found, a (nonnegative-valued) cookie is returned which +can be used with the other functions. +.Pp +The +.Fa bitorder +and +.Fa byteorder +arguments are the bit order and byte order required. +Valid values are: +.Bl -tag -width compact +.It Dv WSDISPLAY_FONTORDER_KNOWN +The font is in known ordered format and doesn't need converting. +.It Dv WSDISPLAY_FONTORDER_L2R +The font is ordered left to right. +.It Dv WSDISPLAY_FONTORDER_R2L +The font is ordered right to left. +.El +.Pp +The +.Fa flags +parameter determines what type of font can be returned. +Any combination of the following values is allowed: +.Bl -tag -width compact +.It Dv WSFONT_FIND_BITMAP +To search bitmap fonts, +.It Dv WSFONT_FIND_ALPHA +to search anti-aliased fonts. +.El +When more flexibility is required, +.Fn wsfont_enum +should be used. +.It Fn wsfont_add "font" "copy" +Add a font +.Fa font +to the font list. +If the +.Fa copy +argument is non-zero, then the font is physically copied, otherwise a +reference to the original font is made. +.It Fn wsfont_remove "cookie" +Remove the font specified by +.Fa cookie +from the font list. +The value of cookie was returned by +.Fn wsfont_add . +.It Fn wsfont_enum "callback" +Enumerate the list of fonts. +For each font in the font list, the +.Fa callback +function argument is called with the arguments specifying the font +name, width, height and stride. +.It Fn wsfont_lock "cookie" "ptr" +Lock access to the font specified by +.Fa cookie +so that it cannot be unloaded from the kernel while is being used. +If the bit or byte order of the font to be locked differs from what +has been requested with +.Fn wsfont_find +then the glyph data will be modified to match. +At this point it may be necessary for +.Fn wsfont_lock +to make a copy of the font data; this action is transparent to the caller. +A later call to +.Fn wsfont_unlock +will free resources used by temporary copies. +.Pp +The address of the wsdisplay_font pointer for the specified font is returned in +the +.Fa ptr +argument. +.Pp +.Fn wsfont_lock +returns zero on success, or an error code on failure. +.It Fn wsfont_unlock "cookie" +Unlock the font specified by +.Fa cookie . +Returns zero on success, or an error code on failure. +.It Fn wsfont_map_unichar "font" "c" +Remap the unicode character +.Fa c +to glyph for font +.Fa font . +Returns the glyph on success or \-1 on error. +.El +.Sh CODE REFERENCES +The wscons subsystem is implemented within the directory +.Pa sys/dev/wscons . +The wsfont subsystem itself is implemented within the file +.Pa sys/dev/wsfont/wsfont.c . +.Sh SEE ALSO +.Xr wsfont 4 , +.Xr wsfontload 8 , +.Xr autoconf 9 , +.Xr driver 9 , +.Xr intro 9 , +.Xr wscons 9 , +.Xr wsdisplay 9 |
