117ca54c3Smrg/*
217ca54c3Smrg * Declarations of request structures for the BIGFONT extension.
317ca54c3Smrg *
417ca54c3Smrg * Copyright (c) 1999-2000  Bruno Haible
517ca54c3Smrg * Copyright (c) 1999-2000  The XFree86 Project, Inc.
617ca54c3Smrg */
717ca54c3Smrg
817ca54c3Smrg/* THIS IS NOT AN X CONSORTIUM STANDARD */
917ca54c3Smrg
1017ca54c3Smrg#ifndef _XF86BIGFPROTO_H_
1117ca54c3Smrg#define _XF86BIGFPROTO_H_
1217ca54c3Smrg
1317ca54c3Smrg#include <X11/extensions/xf86bigfont.h>
1417ca54c3Smrg
1517ca54c3Smrg#define XF86BIGFONTNAME			"XFree86-Bigfont"
1617ca54c3Smrg
1717ca54c3Smrg#define XF86BIGFONT_MAJOR_VERSION	1	/* current version numbers */
1817ca54c3Smrg#define XF86BIGFONT_MINOR_VERSION	1
1917ca54c3Smrg
2017ca54c3Smrgtypedef struct _XF86BigfontQueryVersion {
2117ca54c3Smrg    CARD8	reqType;		/* always XF86BigfontReqCode */
2217ca54c3Smrg    CARD8	xf86bigfontReqType;	/* always X_XF86BigfontQueryVersion */
23ea1d6981Smrg    CARD16	length;
2417ca54c3Smrg} xXF86BigfontQueryVersionReq;
2517ca54c3Smrg#define sz_xXF86BigfontQueryVersionReq	4
2617ca54c3Smrg
2717ca54c3Smrgtypedef struct {
2817ca54c3Smrg    BYTE	type;			/* X_Reply */
2917ca54c3Smrg    CARD8	capabilities;
30ea1d6981Smrg    CARD16	sequenceNumber;
31ea1d6981Smrg    CARD32	length;
32ea1d6981Smrg    CARD16	majorVersion;		/* major version of XFree86-Bigfont */
33ea1d6981Smrg    CARD16	minorVersion;		/* minor version of XFree86-Bigfont */
34ea1d6981Smrg    CARD32	uid;
35ea1d6981Smrg    CARD32	gid;
36ea1d6981Smrg    CARD32	signature;
37ea1d6981Smrg    CARD32	pad1;
38ea1d6981Smrg    CARD32	pad2;
3917ca54c3Smrg} xXF86BigfontQueryVersionReply;
4017ca54c3Smrg#define sz_xXF86BigfontQueryVersionReply 32
4117ca54c3Smrg
4217ca54c3Smrg/* Bit masks that can be set in the capabilities */
4317ca54c3Smrg#define XF86Bigfont_CAP_LocalShm 1
4417ca54c3Smrg
4517ca54c3Smrgtypedef struct _XF86BigfontQueryFont {
4617ca54c3Smrg    CARD8	reqType;		/* always XF86BigfontReqCode */
4717ca54c3Smrg    CARD8	xf86bigfontReqType;	/* always X_XF86BigfontQueryFont */
48ea1d6981Smrg    CARD16	length;
49ea1d6981Smrg    CARD32	id;
50ea1d6981Smrg    CARD32	flags;
5117ca54c3Smrg} xXF86BigfontQueryFontReq;
5217ca54c3Smrg#define sz_xXF86BigfontQueryFontReq	12
5317ca54c3Smrg
5417ca54c3Smrgtypedef struct {
5517ca54c3Smrg    BYTE	type;			/* X_Reply */
5617ca54c3Smrg    CARD8	pad1;
57ea1d6981Smrg    CARD16	sequenceNumber;
58ea1d6981Smrg    CARD32	length;
5917ca54c3Smrg    xCharInfo	minBounds;
6017ca54c3Smrg#ifndef WORD64
61ea1d6981Smrg    CARD32	walign1;
6217ca54c3Smrg#endif
6317ca54c3Smrg    xCharInfo	maxBounds;
6417ca54c3Smrg#ifndef WORD64
65ea1d6981Smrg    CARD32	walign2;
6617ca54c3Smrg#endif
67ea1d6981Smrg    CARD16	minCharOrByte2;
68ea1d6981Smrg    CARD16	maxCharOrByte2;
69ea1d6981Smrg    CARD16	defaultChar;
70ea1d6981Smrg    CARD16	nFontProps;
7117ca54c3Smrg    CARD8	drawDirection;
7217ca54c3Smrg    CARD8	minByte1;
7317ca54c3Smrg    CARD8	maxByte1;
7417ca54c3Smrg    BOOL	allCharsExist;
75ea1d6981Smrg    INT16	fontAscent;
76ea1d6981Smrg    INT16	fontDescent;
77ea1d6981Smrg    CARD32	nCharInfos;
78ea1d6981Smrg    CARD32	nUniqCharInfos;
79ea1d6981Smrg    CARD32	shmid;
80ea1d6981Smrg    CARD32	shmsegoffset;
8117ca54c3Smrg    /* followed by nFontProps xFontProp structures */
8217ca54c3Smrg    /* and if nCharInfos > 0 && shmid == -1,
8317ca54c3Smrg       followed by nUniqCharInfos xCharInfo structures
8417ca54c3Smrg       and then by nCharInfos CARD16 indices (each >= 0, < nUniqCharInfos)
8517ca54c3Smrg       and then, if nCharInfos is odd, one more CARD16 for padding. */
8617ca54c3Smrg} xXF86BigfontQueryFontReply;
8717ca54c3Smrg#define sz_xXF86BigfontQueryFontReply	72
8817ca54c3Smrg
8917ca54c3Smrg/* Bit masks that can be set in the flags */
9017ca54c3Smrg#define XF86Bigfont_FLAGS_Shm 1
9117ca54c3Smrg
9217ca54c3Smrg#endif /* _XF86BIGFPROTO_H_ */
93