/*
*               TeX Device Driver DVIOUT, DVIPRT で
*               書体倶楽部のアウトラインフォントを使う
*
*                            vfont.h
*
*	1991-92  by T.Minagawa
*	6 June 1992 : slightly modified to utilize tpic functions by Oh-Yeah?
*	1 Sept 1992 : slightly modified for version check by sempa.
*  12 Nov  1992 : modified for JGfont(3D-Bezier) by Naochan!
*  27 NOV  1992 : slightly modified for by Yakumo
*/

#define	VFN_VERSION	"2"	/* vfnのバージョンは整数部のみでチェック */
#define VER_LEN 4	/* versionチェックの文字列バッファの長さ */

#ifdef BEZIERFONT
typedef enum {
	V_ERROR = -1, V_CLOSE = 0, V_OPEN = 1, V_JG_OPEN = 3
} VF_FLAG;

#else
typedef enum {
	V_ERROR = -1, V_CLOSE = 0, V_OPEN = 1
} VF_FLAG;

#endif
/* check flag for vector font */
typedef enum {
	CLEAR_BUF, KEEP_BUF, GET_DATA
} GET_TEN_SW;

/* get_ten 用のフラグ */

#define MAX_VFONT 5	/* 登録できる vec font の最大数 */
#define NAMELEN 9	/* jfm file name 用バッファのサイズ */
#define MAX_VALUE 0x3ff	/* ベクトルフォント座標データの最大値
						 * 座標が10bitsで記述されているので、
						 * 0x3ff が最大値になる */
#define MAX_CODE 4417	/* ベクトルフォント文字コードの最大値 */
#define BUFSIZE 256	/* vfn file 読み取り用バッファのサイズ */
#ifdef VFTPIC
#define DEF_THIN 100	/* thin パラメータのデフォルト */
#else
#define DEF_THIN 50	/* thin パラメータのデフォルト */
#endif
#define DELIM1 ','	/* vfn file の項目間区切り */
#define DELIM2 ';'	/* vfn file の項目内区切り */

#define VF_BUF_SIZE 256	/* ベクトルフォント展開用先読みバッファ*/
#define V_FONT struct _v_font far

struct _v_font {
	BUFFER v_font_name[MAXPATH];	/* vector font name                 */
	VF_FLAG status;	/* フォントファイルの状態を示す     */
#ifdef BEZIERFONT
	int v_fh[3];	/* 第１、第２水準のフォントファイル
					 * のファイルハンドル               */
#else
	int v_fh[2];	/* 第１、第２水準のフォントファイル 
					 * のファイルハンドル               */
#endif
	int yoffset;	/* 垂直方向オフセット               */
	int width_adj;	/* 幅のアジャスト */
	int height_adj;	/* 高さのアジャスト */
#if defined(BEZIERFONT) || !defined(NOVFD)
	int font_type;	/* フォントの種類 (ZS_FONT,JG_FONT,VFD_FONT) */
#endif
};

#define V_JFM struct v_jfm far

struct v_jfm {
	BUFFER name[NAMELEN];	/* JFM ファイルの名前                      */
	int font_no;	/* 使用するベクトルフォントの番号          */
	int long_wide;	/* 長体、平体に関する情報                  */
	int slant;	/* 傾斜に関する情報                        */
	int draw_sw;	/* フォント描画方法選択のスイッチ          */
	int threshold;	/* 描画方法切り換えのしきい値              */
	int thin, _xfat, _yfat;	/* フォントの線幅調整パラメータ            */
	int far *novec;	/* vec font 不使用サイズリストへのポインタ */
	int rotation;	/* フォント回転フラグ                      */
	int f_goth;	/* 疑似ゴシックの変更 0:変更しない,1:標準,2:疑似ゴシック*/
	V_JFM *next;	/* 次のフォント情報へのポインタ            */
};

/* 展開を標準モードで行なうか、fineモードで行なうかのフラグ */
typedef enum {
	STD_MODE, FINE_MODE
} DRAW_MODE;

/* 標準モードの場合の描画方法 */
typedef enum {
	VTRACE, FILL, BOTH
} DRAW_TYPE;
