45e9809aff7304721fddb95654901b32195c9c7avboxsync/***********************************************************
45e9809aff7304721fddb95654901b32195c9c7avboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync All Rights Reserved
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncPermission to use, copy, modify, and distribute this software and its
45e9809aff7304721fddb95654901b32195c9c7avboxsyncdocumentation for any purpose and without fee is hereby granted,
45e9809aff7304721fddb95654901b32195c9c7avboxsyncprovided that the above copyright notice appear in all copies and that
45e9809aff7304721fddb95654901b32195c9c7avboxsyncboth that copyright notice and this permission notice appear in
45e9809aff7304721fddb95654901b32195c9c7avboxsyncsupporting documentation, and that the name of Digital not be
45e9809aff7304721fddb95654901b32195c9c7avboxsyncused in advertising or publicity pertaining to distribution of the
45e9809aff7304721fddb95654901b32195c9c7avboxsyncsoftware without specific, written prior permission.
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
45e9809aff7304721fddb95654901b32195c9c7avboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
45e9809aff7304721fddb95654901b32195c9c7avboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
45e9809aff7304721fddb95654901b32195c9c7avboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
45e9809aff7304721fddb95654901b32195c9c7avboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
45e9809aff7304721fddb95654901b32195c9c7avboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
45e9809aff7304721fddb95654901b32195c9c7avboxsyncSOFTWARE.
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync******************************************************************/
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#ifndef DIXFONTSTRUCT_H
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define DIXFONTSTRUCT_H
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include "servermd.h"
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include "dixfont.h"
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include <X11/fonts/fontstruct.h>
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include "closure.h"
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define NEED_REPLIES
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include <X11/Xproto.h> /* for xQueryFontReply */
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTCHARSET(font) (font)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTMAXBOUNDS(font,field) (font)->info.maxbounds.field
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTMINBOUNDS(font,field) (font)->info.minbounds.field
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define TERMINALFONT(font) (font)->info.terminalFont
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTASCENT(font) (font)->info.fontAscent
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTDESCENT(font) (font)->info.fontDescent
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTGLYPHS(font) 0
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTCONSTMETRICS(font) (font)->info.constantMetrics
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTCONSTWIDTH(font) (font)->info.constantWidth
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTALLEXIST(font) (font)->info.allExist
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTFIRSTCOL(font) (font)->info.firstCol
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTLASTCOL(font) (font)->info.lastCol
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTFIRSTROW(font) (font)->info.firstRow
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTLASTROW(font) (font)->info.lastRow
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTDEFAULTCH(font) (font)->info.defaultCh
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTINKMIN(font) (&((font)->info.ink_minbounds))
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTINKMAX(font) (&((font)->info.ink_maxbounds))
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTPROPS(font) (font)->info.props
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTGLYPHBITS(base,pci) ((unsigned char *) (pci)->bits)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTINFONPROPS(font) (font)->info.nprops
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* some things haven't changed names, but we'll be careful anyway */
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define FONTREFCNT(font) (font)->refcnt
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/*
45e9809aff7304721fddb95654901b32195c9c7avboxsync * for linear char sets
45e9809aff7304721fddb95654901b32195c9c7avboxsync */
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define N1dChars(pfont) (FONTLASTCOL(pfont) - FONTFIRSTCOL(pfont) + 1)
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/*
45e9809aff7304721fddb95654901b32195c9c7avboxsync * for 2D char sets
45e9809aff7304721fddb95654901b32195c9c7avboxsync */
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define N2dChars(pfont) (N1dChars(pfont) * \
45e9809aff7304721fddb95654901b32195c9c7avboxsync (FONTLASTROW(pfont) - FONTFIRSTROW(pfont) + 1))
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#ifndef GLYPHPADBYTES
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define GLYPHPADBYTES -1
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#if GLYPHPADBYTES == 0 || GLYPHPADBYTES == 1
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define GLYPHWIDTHBYTESPADDED(pci) (GLYPHWIDTHBYTES(pci))
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define PADGLYPHWIDTHBYTES(w) (((w)+7)>>3)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#if GLYPHPADBYTES == 2
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define GLYPHWIDTHBYTESPADDED(pci) ((GLYPHWIDTHBYTES(pci)+1) & ~0x1)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define PADGLYPHWIDTHBYTES(w) (((((w)+7)>>3)+1) & ~0x1)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#if GLYPHPADBYTES == 4
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define GLYPHWIDTHBYTESPADDED(pci) ((GLYPHWIDTHBYTES(pci)+3) & ~0x3)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define PADGLYPHWIDTHBYTES(w) (((((w)+7)>>3)+3) & ~0x3)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#if GLYPHPADBYTES == 8 /* for a cray? */
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define GLYPHWIDTHBYTESPADDED(pci) ((GLYPHWIDTHBYTES(pci)+7) & ~0x7)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define PADGLYPHWIDTHBYTES(w) (((((w)+7)>>3)+7) & ~0x7)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif /* DIXFONTSTRUCT_H */