1fa2b3b63Smrg/* 2fa2b3b63Smrg 3fa2b3b63SmrgCopyright 1990, 1994, 1998 The Open Group 4fa2b3b63Smrg 5fa2b3b63SmrgPermission to use, copy, modify, distribute, and sell this software and its 6fa2b3b63Smrgdocumentation for any purpose is hereby granted without fee, provided that 7fa2b3b63Smrgthe above copyright notice appear in all copies and that both that 8fa2b3b63Smrgcopyright notice and this permission notice appear in supporting 9fa2b3b63Smrgdocumentation. 10fa2b3b63Smrg 11fa2b3b63SmrgThe above copyright notice and this permission notice shall be included 12fa2b3b63Smrgin all copies or substantial portions of the Software. 13fa2b3b63Smrg 14fa2b3b63SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15fa2b3b63SmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16fa2b3b63SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17fa2b3b63SmrgIN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR 18fa2b3b63SmrgOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19fa2b3b63SmrgARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20fa2b3b63SmrgOTHER DEALINGS IN THE SOFTWARE. 21fa2b3b63Smrg 22fa2b3b63SmrgExcept as contained in this notice, the name of The Open Group shall 23fa2b3b63Smrgnot be used in advertising or otherwise to promote the sale, use or 24fa2b3b63Smrgother dealings in this Software without prior written authorization 25fa2b3b63Smrgfrom The Open Group. 26fa2b3b63Smrg 27fa2b3b63Smrg*/ 28fa2b3b63Smrg 29fa2b3b63Smrg/* 30fa2b3b63Smrg * Author: Keith Packard, MIT X Consortium 31fa2b3b63Smrg */ 32fa2b3b63Smrg 33fa2b3b63Smrg#ifndef _FONTXLFD_H_ 34fa2b3b63Smrg#define _FONTXLFD_H_ 35fa2b3b63Smrg 36fa2b3b63Smrg#include <X11/fonts/FSproto.h> 37fa2b3b63Smrg 38fa2b3b63Smrg/* Constants for values_supplied bitmap */ 39fa2b3b63Smrg 40fa2b3b63Smrg#define SIZE_SPECIFY_MASK 0xf 41fa2b3b63Smrg 42fa2b3b63Smrg#define PIXELSIZE_MASK 0x3 43fa2b3b63Smrg#define PIXELSIZE_UNDEFINED 0 44fa2b3b63Smrg#define PIXELSIZE_SCALAR 0x1 45fa2b3b63Smrg#define PIXELSIZE_ARRAY 0x2 46e24f450bSmrg#define PIXELSIZE_SCALAR_NORMALIZED 0x3 /* Adjusted for resolution */ 47fa2b3b63Smrg 48fa2b3b63Smrg#define POINTSIZE_MASK 0xc 49fa2b3b63Smrg#define POINTSIZE_UNDEFINED 0 50fa2b3b63Smrg#define POINTSIZE_SCALAR 0x4 51fa2b3b63Smrg#define POINTSIZE_ARRAY 0x8 52fa2b3b63Smrg 53fa2b3b63Smrg#define PIXELSIZE_WILDCARD 0x10 54fa2b3b63Smrg#define POINTSIZE_WILDCARD 0x20 55fa2b3b63Smrg 56fa2b3b63Smrg#define ENHANCEMENT_SPECIFY_MASK 0x40 57fa2b3b63Smrg 58fa2b3b63Smrg#define CHARSUBSET_SPECIFIED 0x40 59fa2b3b63Smrg 60fa2b3b63Smrg#define EPS 1.0e-20 61e24f450bSmrg#define XLFD_NDIGITS 3 /* Round numbers in pixel and 62e24f450bSmrg point arrays to this many 63e24f450bSmrg digits for repeatability */ 64fa2b3b63Smrg 65fa2b3b63Smrgtypedef struct _FontScalable { 66e24f450bSmrg int values_supplied; /* Bitmap identifying what advanced 67e24f450bSmrg capabilities or enhancements 68e24f450bSmrg were specified in the font name */ 69e24f450bSmrg double pixel_matrix[4]; 70e24f450bSmrg double point_matrix[4]; 71fa2b3b63Smrg 72fa2b3b63Smrg /* Pixel and point fields are deprecated in favor of the 73fa2b3b63Smrg transformation matrices. They are provided and filled in for the 74fa2b3b63Smrg benefit of rasterizers that do not handle the matrices. */ 75fa2b3b63Smrg 76e24f450bSmrg int pixel, point; 77fa2b3b63Smrg 78e24f450bSmrg int x, y, width; 79e24f450bSmrg char *xlfdName; 80e24f450bSmrg int nranges; 81e24f450bSmrg fsRange *ranges; 82e24f450bSmrg} FontScalableRec, *FontScalablePtr; 83fa2b3b63Smrg 84e24f450bSmrgextern double xlfd_round_double(double x); 85e24f450bSmrgextern Bool FontParseXLFDName(char *fname, FontScalablePtr vals, int subst); 86e24f450bSmrgextern fsRange *FontParseRanges(char *name, int *nranges); 87fa2b3b63Smrg 88fa2b3b63Smrg#define FONT_XLFD_REPLACE_NONE 0 89fa2b3b63Smrg#define FONT_XLFD_REPLACE_STAR 1 90fa2b3b63Smrg#define FONT_XLFD_REPLACE_ZERO 2 91fa2b3b63Smrg#define FONT_XLFD_REPLACE_VALUE 3 92fa2b3b63Smrg 93e24f450bSmrg#endif /* _FONTXLFD_H_ */ 94