aboutsummaryrefslogtreecommitdiffstats
path: root/libparsepcf_get_accelerators.3
diff options
context:
space:
mode:
Diffstat (limited to 'libparsepcf_get_accelerators.3')
-rw-r--r--libparsepcf_get_accelerators.3161
1 files changed, 161 insertions, 0 deletions
diff --git a/libparsepcf_get_accelerators.3 b/libparsepcf_get_accelerators.3
new file mode 100644
index 0000000..a68c6f4
--- /dev/null
+++ b/libparsepcf_get_accelerators.3
@@ -0,0 +1,161 @@
+.TH LIBPARSEPCF_GET_ACCELERATORS 3 LIBPARSEPCF
+.SH NAME
+libparsepcf_get_accelerators \- Get font information
+
+.SH SYNOPSIS
+.nf
+#include <libparsepcf.h>
+
+#define LIBPARSEPCF_ACCELERATORS /* value omitted */
+#define LIBPARSEPCF_BDF_ACCELERATORS /* value omitted */
+
+struct libparsepcf_accelerators {
+ uint8_t \fIno_overlap\fP : 1;
+ uint8_t \fIconstant_metrics\fP : 1;
+ uint8_t \fIterminal_font\fP : 1;
+ uint8_t \fIconstant_width\fP : 1;
+ uint8_t \fIink_inside\fP : 1;
+ uint8_t \fIink_metrics\fP : 1;
+ uint8_t \fIdraw_rtl\fP : 1;
+ uint8_t \fIhave_ink_bounds\fP : 1;
+ int32_t \fIfont_ascent\fP;
+ int32_t \fIfont_descent\fP;
+ int32_t \fImax_overlap\fP;
+ struct libparsepcf_metrics \fImin_bounds\fP;
+ struct libparsepcf_metrics \fImax_bounds\fP;
+ struct libparsepcf_metrics \fImin_ink_bounds\fP;
+ struct libparsepcf_metrics \fImax_ink_bounds\fP;
+};
+
+int libparsepcf_get_accelerators(const void *\fIdata\fP, size_t \fIsize\fP,
+ const struct libparsepcf_table *\fItable\fP,
+ struct libparsepcf_accelerators *\fImeta_out\fP);
+.fi
+.PP
+Link with
+.IR -lparsepcf .
+
+.SH DESCRIPTION
+A PCF font files may record overall font
+information, intended for optimisations,
+in the tables with the types
+.B LIBPARSEPCF_ACCELERATORS
+and
+.B LIBPARSEPCF_BDF_ACCELERATORS
+which can be retrieved with the
+.BR libparsepcf_get_tables (3)
+function. If both tables are present,
+.B LIBPARSEPCF_BDF_ACCELERATORS
+shall be preferred, it is more accurate
+and only refers to the encoded characters
+in the font, whereas
+.B LIBPARSEPCF_ACCELERATORS
+includes all glyphs (not that the fallback
+glyph do not necessarily correspond to an
+encoded character).
+.PP
+Once the
+.B LIBPARSEPCF_ACCELERATORS
+or
+.B LIBPARSEPCF_BDF_ACCELERATORS
+table has been identified, it can be passed as
+the third argument
+.RI ( table )
+to the
+.BR libparsepcf_get_accelerators ()
+function along with the font file contents in the
+.I data
+argument and size, in bytes, of the file in the
+.I size
+argument. The
+.BR libparsepcf_get_accelerators ()
+function will store the font information in
+.IR *meta_out .
+.PP
+The following information will be stored in
+.IR *meta_out :
+.TP
+.I no_overlap
+If 1, then for each glyph, the layout metrics,
+.IR mtx ,
+.I mtx.right_side_bearing - mtx.character_width
+will not be greater than
+.IR meta_out->min_bounds.left_side_bearing .
+.TP
+.I constant_width
+If 1, all glyph have the same layout width.
+.TP
+.I constant_metrics
+If 1, all glyphs have the same layout metrics.
+.TP
+.I terminal_font
+If 1, all glyphs have the same layout metrics
+and for each glyph, the layout left-side bearing is 0,
+the layout right-side bearing is the layout width,
+the layout ascent is
+.IR meta_out->font_ascent ,
+and the layout descent is
+.IR meta_out->font_descent .
+.TP
+.I ink_inside
+If 1, no glyph will have ink outside the
+glyph's layout box.
+.TP
+.I ink_metrics
+If 1, at least one glyph have ink metrics
+different from the layout metrics.
+.TP
+.I draw_rtl
+If 1, the font is a right-to-left font,
+if 0, the font is a left-to-right font.
+.TP
+.I have_ink_bounds
+If 0, the function copied
+.I meta_out->min_bounds
+into
+.I meta_out->min_ink_bounds
+and
+.I meta_out->max_bounds
+into
+.IR meta_out->max_ink_bounds .
+.TP
+.I font_ascent
+The number of pixels the font ascend above the baseline.
+.TP
+.I font_descent
+The number of pixels the font descend below the baseline.
+.TP
+.I max_overlap
+The maximum horizontal overlap, in pixels, of two glyph.
+.TP
+.I min_bounds
+The lower bounds, over each glyph, of the layout metrics.
+.TP
+.I max_bounds
+The upper bounds, over each glyph, of the layout metrics.
+.TP
+.I min_ink_bounds
+The lower bounds, over each glyph, of the ink metrics.
+.TP
+.I max_ink_bounds
+The upper bounds, over each glyph, of the ink metrics.
+
+.SH RETURN VALUE
+The
+.BR libparsepcf_get_accelerators ()
+function returns 0 upon successful completion.
+On failure, -1 is returned and
+.I errno
+is set appropriately to indicate the error.
+
+.SH ERRORS
+The
+.BR libparsepcf_get_accelerators ()
+function fails if:
+.TP
+.B EBFONT
+The font file is corrupt or unsupported.
+
+.SH SEE ALSO
+.BR libparsepcf (7),
+.BR libparsepcf_preparse_font (3)