1
/* Copyright (C) 2001-2006 Artifex Software, Inc.
4
This software is provided AS-IS with no warranty, either express or
7
This software is distributed under license and may not be copied, modified
8
or distributed except as expressly authorized under the terms of that
9
license. Refer to licensing information at http://www.artifex.com/
10
or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
11
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
14
/* $Id: gxfont0.h 8022 2007-06-05 22:23:38Z giles $ */
15
/* Type 0 (composite) font data definition */
17
#ifndef gxfont0_INCLUDED
18
# define gxfont0_INCLUDED
20
/* Define the composite font mapping types. */
21
/* These numbers must be the same as the values of FMapType */
22
/* in type 0 font dictionaries. */
29
fmap_double_escape = 7,
34
#define fmap_type_min 2
35
#define fmap_type_max 9
36
#define fmap_type_is_modal(fmt)\
37
((fmt) == fmap_escape || (fmt) == fmap_double_escape || (fmt) == fmap_shift)
39
/* This is the type-specific information for a type 0 (composite) gs_font. */
40
#ifndef gs_cmap_DEFINED
41
# define gs_cmap_DEFINED
42
typedef struct gs_cmap_s gs_cmap_t;
44
typedef struct gs_type0_data_s {
46
byte EscChar, ShiftIn, ShiftOut;
47
gs_const_string SubsVector; /* fmap_SubsVector only */
48
uint subs_size; /* bytes per entry */
49
uint subs_width; /* # of entries */
54
const gs_cmap_t *CMap; /* fmap_CMap only */
57
#define gs_type0_data_max_ptrs 3
59
#ifndef gs_font_type0_DEFINED
60
# define gs_font_type0_DEFINED
61
typedef struct gs_font_type0_s gs_font_type0;
64
struct gs_font_type0_s {
69
extern_st(st_gs_font_type0);
70
#define public_st_gs_font_type0() /* in gsfont0.c */\
71
gs_public_st_complex_only(st_gs_font_type0, gs_font_type0, "gs_font_type0",\
72
0, font_type0_enum_ptrs, font_type0_reloc_ptrs, gs_font_finalize)
74
/* Define the Type 0 font procedures. */
75
font_proc_define_font(gs_type0_define_font);
76
font_proc_make_font(gs_type0_make_font);
77
font_proc_init_fstack(gs_type0_init_fstack);
78
font_proc_next_char_glyph(gs_type0_next_char_glyph);
80
#endif /* gxfont0_INCLUDED */