summaryrefslogtreecommitdiff
path: root/static/netbsd/man9/wsfont.9
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man9/wsfont.9')
-rw-r--r--static/netbsd/man9/wsfont.9247
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