+++ /dev/null
-/* $XConsortium: fservestr.h,v 1.13 95/06/09 22:16:29 gildea Exp $ */
-/*
- * Copyright 1990 Network Computing Devices
- *
- * Permission to use, copy, modify, distribute, and sell this software and
- * its documentation for any purpose is hereby granted without fee, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Network Computing Devices not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Network Computing
- * Devices makes no representations about the suitability of this software
- * for any purpose. It is provided "as is" without express or implied
- * warranty.
- *
- * NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
- * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
- * IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Author: Dave Lemke, Network Computing Devices, Inc
- */
-
-#ifndef _FSERVESTR_H_
-#define _FSERVESTR_H_
-
-#include "fserve.h"
-#include "fsio.h"
-
-/*
- * font server data structures
- */
-/*
- * font server private storage
- */
-
-
-typedef struct _fs_font {
- CharInfoPtr pDefault;
- CharInfoPtr encoding;
- CharInfoPtr inkMetrics;
-} FSFontRec, *FSFontPtr;
-
-/* FS special data for the font */
-typedef struct _fs_font_data {
- long fontid;
- int generation; /* FS generation when opened */
- FontPathElementPtr fpe;
- unsigned long glyphs_to_get; /* # glyphs remaining to be gotten */
-
- /* Following data needed in case font needs to be reopened. */
- int namelen;
- char *name;
- fsBitmapFormat format;
- fsBitmapFormatMask fmask;
-} FSFontDataRec;
-
-typedef struct fs_clients_depending {
- pointer client;
- struct fs_clients_depending *next;
-} FSClientsDependingRec, *FSClientsDependingPtr;
-
-/* OpenFont specific data for blocked request */
-typedef struct _fs_blocked_font {
- FontPtr pfont;
- long fontid;
- int state; /* how many of the replies have landed */
- int errcode;
- int flags;
- fsBitmapFormat format;
- FSClientsDependingPtr clients_depending;
-} FSBlockedFontRec;
-
-/* LoadGlyphs data for blocked request */
-typedef struct _fs_blocked_glyphs {
- FontPtr pfont;
- int num_expected_ranges;
- fsRange *expected_ranges;
- int errcode;
- Bool done;
- FSClientsDependingPtr clients_depending;
-} FSBlockedGlyphRec;
-
-/* LoadExtents data for blocked request */
-typedef struct _fs_blocked_extents {
- FontPtr pfont;
- fsRange *expected_ranges;
- int nranges;
- Bool done;
- unsigned long nextents;
- fsXCharInfo *extents;
-} FSBlockedExtentRec;
-
-/* LoadBitmaps data for blocked request */
-typedef struct _fs_blocked_bitmaps {
- FontPtr pfont;
- fsRange *expected_ranges;
- int nranges;
- Bool done;
- unsigned long size;
- unsigned long nglyphs;
- fsOffset32 *offsets;
- pointer gdata;
-} FSBlockedBitmapRec;
-
-/* state for blocked ListFonts */
-typedef struct _fs_blocked_list {
- FontNamesPtr names;
- int patlen;
- int errcode;
- Bool done;
-} FSBlockedListRec;
-
-/* state for blocked ListFontsWithInfo */
-typedef struct _fs_blocked_list_info {
- int status;
- char *name;
- int namelen;
- FontInfoPtr pfi;
- int remaining;
- int errcode;
-} FSBlockedListInfoRec;
-
-/* state for blocked request */
-typedef struct _fs_block_data {
- int type; /* Open Font, LoadGlyphs, ListFonts,
- * ListWithInfo */
- pointer client; /* who wants it */
- int sequence_number;/* expected */
- fsGenericReply header;
- pointer data; /* type specific data */
- struct _fs_block_data *depending; /* clients depending on this one */
- struct _fs_block_data *next;
-} FSBlockDataRec;
-
-/* state for reconnected to dead font server */
-typedef struct _fs_reconnect {
- int i;
-} FSReconnectRec, *FSReconnectPtr;
-
-
-#if (defined(__STDC__) && !defined(UNIXCPP)) || defined(ANSICPP)
-#define fsCat(x,y) x##_##y
-#else
-#define fsCat(x,y) x/**/_/**/y
-#endif
-
-
-/* copy XCharInfo parts of a protocol reply into a xCharInfo */
-
-#define fsUnpack_XCharInfo(packet, structure) \
- (structure)->leftSideBearing = fsCat(packet,left); \
- (structure)->rightSideBearing = fsCat(packet,right); \
- (structure)->characterWidth = fsCat(packet,width); \
- (structure)->ascent = fsCat(packet,ascent); \
- (structure)->descent = fsCat(packet,descent); \
- (structure)->attributes = fsCat(packet,attributes)
-
-
-/* copy XFontInfoHeader parts of a protocol reply into a FontInfoRec */
-
-#define fsUnpack_XFontInfoHeader(packet, structure) \
- (structure)->allExist = ((packet)->font_header_flags & FontInfoAllCharsExist) != 0; \
- (structure)->drawDirection = \
- ((packet)->font_header_draw_direction == LeftToRightDrawDirection) ? \
- LeftToRight : RightToLeft; \
- (structure)->inkInside = ((packet)->font_header_flags & FontInfoInkInside) != 0; \
- \
- (structure)->firstRow = (packet)->font_hdr_char_range_min_char_high; \
- (structure)->firstCol = (packet)->font_hdr_char_range_min_char_low; \
- (structure)->lastRow = (packet)->font_hdr_char_range_max_char_high; \
- (structure)->lastCol = (packet)->font_hdr_char_range_max_char_low; \
- (structure)->defaultCh = (packet)->font_header_default_char_low \
- + ((packet)->font_header_default_char_high << 8); \
- \
- (structure)->fontDescent = (packet)->font_header_font_descent; \
- (structure)->fontAscent = (packet)->font_header_font_ascent; \
- \
- fsUnpack_XCharInfo((packet)->font_header_min_bounds, &(structure)->minbounds); \
- fsUnpack_XCharInfo((packet)->font_header_min_bounds, &(structure)->ink_minbounds); \
- fsUnpack_XCharInfo((packet)->font_header_max_bounds, &(structure)->maxbounds); \
- fsUnpack_XCharInfo((packet)->font_header_max_bounds, &(structure)->ink_maxbounds)
-
-
-#endif /* _FSERVESTR_H_ */