20#include FT_INTERNAL_DEBUG_H
21#include FT_INTERNAL_STREAM_H
22#include FT_TRUETYPE_TAGS_H
28#ifdef TT_CONFIG_OPTION_BDF
37#define FT_COMPONENT trace_ttbdf
43 TT_BDF bdf = &
face->bdf;
54 bdf->table_end =
NULL;
56 bdf->strings_size = 0;
65 TT_BDF bdf = &
face->bdf;
81 bdf->table_end = bdf->table +
length;
94 (
strings - 8 ) / 4 < num_strikes ||
100 bdf->num_strikes = num_strikes;
101 bdf->strings = bdf->table +
strings;
104 count = bdf->num_strikes;
117 strike += 10 * num_items;
122 if ( strike > bdf->strings )
141 const char* property_name,
144 TT_BDF bdf = &
face->bdf;
155 if ( bdf->loaded == 0 )
162 count = bdf->num_strikes;
168 if ( !
size || !property_name )
171 property_len =
ft_strlen( property_name );
172 if ( property_len == 0 )
181 if ( _ppem ==
size->metrics.y_ppem )
187 strike += 10 * _count;
198 if ( (
type & 0x10 ) != 0 )
204 if ( name_offset < bdf->strings_size &&
205 property_len < bdf->strings_size - name_offset &&
207 (
const char*)bdf->strings + name_offset,
208 bdf->strings_size - name_offset ) == 0 )
210 switch (
type & 0x0F )
215 if ( value < bdf->strings_size &&
219 aprop->
u.
atom = (
const char*)bdf->strings +
value;
static const WCHAR version[]
@ BDF_PROPERTY_TYPE_CARDINAL
@ BDF_PROPERTY_TYPE_INTEGER
#define FT_FRAME_RELEASE(bytes)
#define FT_NEXT_USHORT(buffer)
#define FT_PEEK_USHORT(p)
#define FT_FRAME_EXTRACT(size, bytes)
#define FT_NEXT_ULONG(buffer)
GLuint GLuint GLsizei GLenum type
GLuint GLuint GLsizei count
GLsizei const GLchar *const * strings
GLenum GLuint GLint GLenum face
GLuint GLsizei GLsizei * length
union BDF_PropertyRec_::@4223 u
tt_face_goto_table(TT_Face face, FT_ULong tag, FT_Stream stream, FT_ULong *length)