a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* $Xorg: font.h,v 1.3 2000/08/18 04:05:44 coskrey Exp $ */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/***********************************************************
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync All Rights Reserved
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncPermission to use, copy, modify, and distribute this software and its
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncdocumentation for any purpose and without fee is hereby granted,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncprovided that the above copyright notice appear in all copies and that
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncboth that copyright notice and this permission notice appear in
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncsupporting documentation, and that the name of Digital not be
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncused in advertising or publicity pertaining to distribution of the
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncsoftware without specific, written prior permission.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncSOFTWARE.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync******************************************************************/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* $XFree86: xc/include/fonts/font.h,v 3.5 2001/01/17 17:53:26 dawes Exp $ */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* $NCDXorg: @(#)font.h,v 1.7 1991/06/24 17:00:23 lemke Exp $ */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifndef FONT_H
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FONT_H
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifndef BitmapFormatByteOrderMask
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#include "fsmasks.h"
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* data structures */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifndef _XTYPEDEF_FONTPTR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _Font *FontPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define _XTYPEDEF_FONTPTR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _FontInfo *FontInfoPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _FontProp *FontPropPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _ExtentInfo *ExtentInfoPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _FontPathElement *FontPathElementPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifndef _XTYPEDEF_CHARINFOPTR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _CharInfo *CharInfoPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define _XTYPEDEF_CHARINFOPTR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _FontNames *FontNamesPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _FontResolution *FontResolutionPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define NullCharInfo ((CharInfoPtr) 0)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define NullFont ((FontPtr) 0)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define NullFontInfo ((FontInfoPtr) 0)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync /* draw direction */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define LeftToRight 0
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define RightToLeft 1
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define BottomToTop 2
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define TopToBottom 3
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef int DrawDirection;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define NO_SUCH_CHAR -1
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FontAliasType 0x1000
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define AllocError 80
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define StillWorking 81
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FontNameAlias 82
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define BadFontName 83
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define Suspended 84
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define Successful 85
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define BadFontPath 86
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define BadCharRange 87
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define BadFontFormat 88
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FPEResetFailed 89 /* for when an FPE reset won't work */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* OpenFont flags */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FontLoadInfo 0x0001
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FontLoadProps 0x0002
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FontLoadMetrics 0x0004
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FontLoadBitmaps 0x0008
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FontLoadAll 0x000f
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FontOpenSync 0x0010
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FontReopen 0x0020
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* Query flags */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define LoadAll 0x1
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define FinishRamge 0x2
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define EightBitFont 0x4
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SixteenBitFont 0x8
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* Glyph Caching Modes */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define CACHING_OFF 0
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define CACHE_16_BIT_GLYPHS 1
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define CACHE_ALL_GLYPHS 2
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define DEFAULT_GLYPH_CACHING_MODE CACHE_16_BIT_GLYPHS
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int glyphCachingMode;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncstruct _Client;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int StartListFontsWithInfo(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync struct _Client * /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*length*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*pattern*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*max_names*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern FontNamesPtr MakeFontNamesRecord(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned /* size */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void FreeFontNames(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync FontNamesPtr /* pFN*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int AddFontNamesName(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync FontNamesPtr /* names */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync char * /* name */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* length */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if 0 /* unused */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int FontToFSError();
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern FontResolutionPtr GetClientResolution();
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _FontPatternCache *FontPatternCachePtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern FontPatternCachePtr MakeFontPatternCache (
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void FreeFontPatternCache (
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync FontPatternCachePtr /* cache */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void EmptyFontPatternCache (
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync FontPatternCachePtr /* cache */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void CacheFontPattern (
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync FontPatternCachePtr /* cache */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync char * /* pattern */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* patlen */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync FontPtr /* pFont */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern FontResolutionPtr GetClientResolutions(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /* num */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern FontPtr FindCachedFontPattern (
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync FontPatternCachePtr /* cache */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync char * /* pattern */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* patlen */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void RemoveCachedFontPattern (
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync FontPatternCachePtr /* cache */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync FontPtr /* pFont */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef enum {
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Linear8Bit, TwoD8Bit, Linear16Bit, TwoD16Bit
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync} FontEncoding;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* FONT_H */