diff options
Diffstat (limited to 'console/bdf.h')
-rw-r--r-- | console/bdf.h | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/console/bdf.h b/console/bdf.h deleted file mode 100644 index 968c9f59..00000000 --- a/console/bdf.h +++ /dev/null @@ -1,272 +0,0 @@ -/* bdf.h - Interface to Adobe Glyph Bitmap Distribution Format (BDF) parser. - Copyright (C) 2002 Free Software Foundation, Inc. - Written by Marcus Brinkmann <marcus@gnu.org>. - - This file is part of the GNU Hurd. - - The GNU Hurd is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2, or (at - your option) any later version. - - The GNU Hurd is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ - -#ifndef _BDF_H_ -#define _BDF_H_ - -#include <stdio.h> - -/* Version 2.2 of the Glyph Bitmap Distribution Format Specification - was released by Adobe 22 March 1993 and is a superset of version 2.1. - - The format of a BDF file is a human-readable ASCII text file. - Every line consists of a keyword, which may be followed by one or - more arguments. The specification is vague about the exact data - types of the arguments, so we treat a string as an 8-bit string - which must not contain a binary null, and a number like an integer - as an int. Leading and trailing white space are removed, multiple - spaces that seperate arguments are replaced by a single white - space, and empty lines are ignored. */ - - -/* Possible error values returned by the BDF functions. */ -typedef enum -{ - /* No error occured. This is guaranteed to be zero. */ - BDF_NO_ERROR = 0, - - /* A system error occured. The caller should consult errno. */ - BDF_SYSTEM_ERROR, - - /* All following errors indicate that the file is not a valid BDF - file. */ - BDF_SYNTAX_ERROR, - - /* An argument is out of range or of an invalid type. */ - BDF_INVALID_ARGUMENT, - - /* The number of properties, glyphs or bitmap lines is - incorrect. */ - BDF_COUNT_MISMATCH -} bdf_error_t; - -/* Return a statically allocated string describing the error value ERR. */ -const char *bdf_strerror (bdf_error_t err); - - -/* A property in the BDF font file is an unspecified KEYWORD VALUE - pair in a line after STARTPROPERTIES and before ENDPROPERTIES. - VALUE can be an integer or a string in double quotes (two - consecutives double quotes can be used to include a double quote in - the string. */ -struct bdf_property -{ - /* The property name. */ - char *name; - - /* The type indicates which member of the union is valid. */ - enum { BDF_PROPERTY_NUMBER, BDF_PROPERTY_STRING } type; - union - { - int number; - char *string; - } value; -}; -typedef struct property *bdf_property_t; - -/* The bounding box of a font or a glyph within. */ -struct bdf_bbox -{ - int width; - int height; - int offx; - int offy; -}; - -/* A vector, used for displacement and resolution. */ -struct bdf_vector -{ - int x; - int y; -}; - -/* A single glyph in the font. */ -struct bdf_glyph -{ - /* The name of the glyph. */ - char *name; - - /* The Adode Standard Encoding of the glyph, or -1 if not - available. */ - int encoding; - - /* If encoding is -1, internal_encoding contains the internal - encoding of the glyph. The internal encoding is private to the - font and the application. */ - int internal_encoding; - - /* The bounding box of the glyph. The width of the bounding box, - divided by 8 (rounding up), specifies how many bytes are used in - the bitmap for each row of the glyph. The height specifies the - number of rows. */ - struct bdf_bbox bbox; - - /* The bitmap of the glyph, row-by-row from top to bottom, and - byte-by-byte within a row from left to right. Within a byte, the - most significant bit is left in the glyph. */ - unsigned char *bitmap; - - /* If the writing direction is horizontal, SWIDTH and DWIDTH are - relevant. If the writing direction is vertical, SWIDTH1, DWIDTH1 - and VVECTOR are relevant. Relevant values have to be specified - here, or font-wide in the global section. A global value can be - overridden for individual glyphs. */ - int has_swidth : 1; - int has_dwidth : 1; - int has_swidth1 : 1; - int has_dwidth1 : 1; - int has_vvector : 1; - struct bdf_vector swidth; - struct bdf_vector dwidth; - struct bdf_vector swidth1; - struct bdf_vector dwidth1; - struct bdf_vector vvector; -}; - -/* A font is a set of glyphs with some font-wide attributes. */ -struct bdf_font -{ - /* The version of the font format. Should be 2.1 or 2.2. It is - split up into major and minor component to make precise - comparison possible. */ - int version_maj; - int version_min; - - /* The font name. */ - char *name; - - /* The content version, if available. The content version indicates - the revision of the appearance of the glyphs within the font. */ - int has_content_version : 1; - int content_version; - - /* The point size of the font in device pixels. */ - int point_size; - - /* The resolution of the display the font is intended for (dpi). - This is needed if you want to scale the glyphs for a different - device than they were intended for. */ - int res_x; - int res_y; - - /* The global bounding box parameters. */ - struct bdf_bbox bbox; - - int __properties_allocated; - int properties_count; - struct bdf_property *properties; - int __glyphs_allocated; - int glyphs_count; - struct bdf_glyph *glyphs; - - /* The metricsset. If 0, the font has a horizontal writing - direction. If 1, the font has a vertical writing direction. If - 2, the font has a mixed writing direction. */ - int metricsset; - - /* The following have the same meaning as the corresponding members - in the glyph structure and specify a font wide default which must - be used if the glyph does not provide its own values. */ - int has_swidth : 1; - int has_dwidth : 1; - int has_swidth1 : 1; - int has_dwidth1 : 1; - int has_vvector : 1; - struct bdf_vector swidth; - struct bdf_vector dwidth; - struct bdf_vector swidth1; - struct bdf_vector dwidth1; - struct bdf_vector vvector; -}; -typedef struct bdf_font *bdf_font_t; - - -/* Read the font from stream FILE, and return it in FONT. If - LINECOUNT is not zero, it will contain the number of lines in the - file at success, and the current line an error occured at - failure. */ -bdf_error_t bdf_read (FILE *file, bdf_font_t *font, int *linecount); - -/* Destroy the BDF font object and release all associated - resources. */ -void bdf_destroy (bdf_font_t font); - -/* Create a new font object with the specified mandatory - parameters. */ -bdf_error_t bdf_new (bdf_font_t *font, int version_maj, int version_min, - const char *name, int point_size, int res_x, int res_y, - int bbox_width, int bbox_height, int bbox_offx, - int bbox_offy, int metricsset); - -/* Set the SWIDTH of the glyph GLYPH in font FONT to X and Y. If - glyph is negativ, the default for the font will be set. */ -bdf_error_t bdf_set_swidth (bdf_font_t font, int glyph, int x, int y); - -/* Set the DWIDTH of the glyph GLYPH in font FONT to X and Y. If - glyph is negativ, the default for the font will be set. */ -bdf_error_t bdf_set_dwidth (bdf_font_t font, int glyph, int x, int y); - -/* Set the SWIDTH1 of the glyph GLYPH in font FONT to X and Y. If - glyph is negativ, the default for the font will be set. */ -bdf_error_t bdf_set_swidth1 (bdf_font_t font, int glyph, int x, int y); - -/* Set the DWIDTH1 of the glyph GLYPH in font FONT to X and Y. If - glyph is negativ, the default for the font will be set. */ -bdf_error_t bdf_set_dwidth1 (bdf_font_t font, int glyph, int x, int y); - -/* Set the VVECTOR of the glyph GLYPH in font FONT to X and Y. If - glyph is negativ, the default for the font will be set. */ -bdf_error_t bdf_set_vvector (bdf_font_t font, int glyph, int x, int y); - -/* Add a new string property to the font FONT. */ -bdf_error_t bdf_add_string_property (bdf_font_t font, const char *name, - const char *value); - -/* Add a new number property to the font FONT. */ -bdf_error_t bdf_add_number_property (bdf_font_t font, const char *name, - int value); - -/* Add a new glyph with the specified paramters to the font FONT. If - encoding is -1, internal_encoding specifies the internal - encoding. All other parameters are mandatory. */ -bdf_error_t bdf_add_glyph (bdf_font_t font, const char *name, int encoding, - int internal_encoding, int bbox_width, - int bbox_height, int bbox_offx, int bbox_offy, - const unsigned char *bitmap); - -/* Write the font FONT in BDF format to stream FILEP. */ -bdf_error_t bdf_write (FILE *filep, bdf_font_t font); - -/* The function returns -1 if the encoding of glyph A is lower than - the encoding of glyph B, 1 if it is the other way round, and 0 if - the encoding of both glyphs is the same. */ -int bdf_compare_glyphs (const void *a, const void *b); - -/* Sort the glyphs in the font FONT. This must be called before using - bdf_find_glyphs, after the font has been created or after new - glyphs have been added to the font. */ -void bdf_sort_glyphs (bdf_font_t font); - -/* Find the glyph with the encoding ENC (and INTERNAL_ENC, if ENC is - -1) in the font FONT. Requires that the glyphs in the font are - sorted. */ -struct bdf_glyph *bdf_find_glyph (bdf_font_t font, int enc, int internal_enc); - -#endif /* _BDF_H_ */ |