ftbdf.h revision 9c745321260bb728ab1cd1c8fd5f075854b2ad49
1aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/***************************************************************************/ 2aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* */ 3aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* ftbdf.h */ 4aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* */ 5aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* FreeType API for accessing BDF-specific strings (specification). */ 6aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* */ 7aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* Copyright 2002-2004, 2006, 2009, 2014 by */ 8aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* */ 10aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* This file is part of the FreeType project, and may only be used, */ 11aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* modified, and distributed under the terms of the FreeType project */ 12aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* this file you indicate that you have read the license and */ 14aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* understand and accept it fully. */ 15aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* */ 16aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/***************************************************************************/ 1720ed7b24df05eadf83168d1d0ce0052a31380928Stephen Hemminger 18aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 19aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#ifndef __FTBDF_H__ 20aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#define __FTBDF_H__ 21aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 22aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#include <ft2build.h> 23aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#include FT_FREETYPE_H 24aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 25aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#ifdef FREETYPE_H 26aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#error "freetype.h of FreeType 1 has been loaded!" 27aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#error "Please fix the directory search order for header files" 28aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#error "so that freetype.h of FreeType 2 is found first." 29aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#endif 30aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 31aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 32aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerFT_BEGIN_HEADER 33aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 34aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 35aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /*************************************************************************/ 36aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* */ 37aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* <Section> */ 38aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* bdf_fonts */ 39aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* */ 40aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* <Title> */ 41aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* BDF and PCF Files */ 42aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* */ 43aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* <Abstract> */ 44aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* BDF and PCF specific API. */ 45aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* */ 46aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* <Description> */ 47aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* This section contains the declaration of functions specific to BDF */ 48aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* and PCF fonts. */ 49aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* */ 50aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /*************************************************************************/ 51aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 52aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 53aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /********************************************************************** 54aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 55aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @enum: 56aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * FT_PropertyType 57aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 58aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @description: 59aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * A list of BDF property types. 60aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 61aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @values: 62aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * BDF_PROPERTY_TYPE_NONE :: 63aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * Value~0 is used to indicate a missing property. 64aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 65aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * BDF_PROPERTY_TYPE_ATOM :: 66aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * Property is a string atom. 67aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 68aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * BDF_PROPERTY_TYPE_INTEGER :: 69aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * Property is a 32-bit signed integer. 70aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 71aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * BDF_PROPERTY_TYPE_CARDINAL :: 72aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * Property is a 32-bit unsigned integer. 73aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger */ 74aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger typedef enum BDF_PropertyType_ 75aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger { 76aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger BDF_PROPERTY_TYPE_NONE = 0, 77aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger BDF_PROPERTY_TYPE_ATOM = 1, 78aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger BDF_PROPERTY_TYPE_INTEGER = 2, 79aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger BDF_PROPERTY_TYPE_CARDINAL = 3 80aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 81aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger } BDF_PropertyType; 82aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 83aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 84aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /********************************************************************** 85aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 86aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @type: 87aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * BDF_Property 88aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 89aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @description: 90aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * A handle to a @BDF_PropertyRec structure to model a given 91aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * BDF/PCF property. 92aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger */ 93aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger typedef struct BDF_PropertyRec_* BDF_Property; 94aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 95aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 96aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /********************************************************************** 97aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 98aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @struct: 99aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * BDF_PropertyRec 100aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 101aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @description: 102aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * This structure models a given BDF/PCF property. 103aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 104aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @fields: 105aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * type :: 106aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * The property type. 107aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 108aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * u.atom :: 109aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * The atom string, if type is @BDF_PROPERTY_TYPE_ATOM. May be 110aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * NULL, indicating an empty string. 111aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 112aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * u.integer :: 113aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER. 114aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 115aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * u.cardinal :: 116aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL. 117aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger */ 118aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger typedef struct BDF_PropertyRec_ 119aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger { 120aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger BDF_PropertyType type; 121aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger union { 122aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger const char* atom; 123aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger FT_Int32 integer; 124aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger FT_UInt32 cardinal; 125aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 126aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger } u; 127aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 128aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger } BDF_PropertyRec; 129aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 130aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 131aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /********************************************************************** 132aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 133aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @function: 134aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * FT_Get_BDF_Charset_ID 135aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 136aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @description: 137aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * Retrieve a BDF font character set identity, according to 138aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * the BDF specification. 139aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 140aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @input: 141aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * face :: 142aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * A handle to the input face. 143aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 144aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @output: 145aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * acharset_encoding :: 146aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * Charset encoding, as a C~string, owned by the face. 147aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 148aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * acharset_registry :: 149aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * Charset registry, as a C~string, owned by the face. 150aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 151aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @return: 152aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * FreeType error code. 0~means success. 153aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 154aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @note: 155aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * This function only works with BDF faces, returning an error otherwise. 156aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger */ 157aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger FT_EXPORT( FT_Error ) 158aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger FT_Get_BDF_Charset_ID( FT_Face face, 159aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger const char* *acharset_encoding, 160aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger const char* *acharset_registry ); 161aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 162aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 163aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /********************************************************************** 164aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 165aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @function: 166aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * FT_Get_BDF_Property 167aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 168aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @description: 169aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * Retrieve a BDF property from a BDF or PCF font file. 170aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 171aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @input: 172aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * face :: A handle to the input face. 173aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 174aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * name :: The property name. 175aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 176aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @output: 177aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * aproperty :: The property. 178aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 179aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @return: 180aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * FreeType error code. 0~means success. 181aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 182aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @note: 183aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * This function works with BDF _and_ PCF fonts. It returns an error 184aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * otherwise. It also returns an error if the property is not in the 185aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * font. 186aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 187aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * A `property' is a either key-value pair within the STARTPROPERTIES 188aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * ... ENDPROPERTIES block of a BDF font or a key-value pair from the 189aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * `info->props' array within a `FontRec' structure of a PCF font. 190aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 191aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * Integer properties are always stored as `signed' within PCF fonts; 192aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value 193aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * for BDF fonts only. 194aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * 195aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * In case of error, `aproperty->type' is always set to 196aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger * @BDF_PROPERTY_TYPE_NONE. 197aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger */ 198aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger FT_EXPORT( FT_Error ) 199aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger FT_Get_BDF_Property( FT_Face face, 200aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger const char* prop_name, 201aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger BDF_PropertyRec *aproperty ); 202aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 203aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger /* */ 204aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 205aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerFT_END_HEADER 206aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 207aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#endif /* __FTBDF_H__ */ 208aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 209aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger 210aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger/* END */ 211aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger