20#include FT_INTERNAL_DEBUG_H
21#include FT_INTERNAL_STREAM_H
26#define FT_COMPONENT trace_pfr
141 FT_UInt num_items, item_type, item_size;
147 for ( ; num_items > 0; num_items-- )
162 if (
extra->type == item_type )
181 FT_ERROR((
"pfr_extra_items_parse: invalid extra items table\n" ));
198#define FT_STRUCTURE PFR_HeaderRec
252 header->phy_font_max_size +=
253 (FT_UInt32)
header->phy_font_max_size_high << 16;
267 if (
header->signature != 0x50465230L ||
269 header->header_size < 58 ||
270 header->signature2 != 0x0D0A )
290 FT_UInt32 section_offset,
308 if (
count > ( ( 1 << 16 ) - 2 ) / 5 ||
313 " invalid number of logical fonts\n" ));
330 FT_UInt32 section_offset,
344 if (
idx >= num_log_fonts )
345 return FT_THROW( Invalid_Argument );
353 log_font->size =
size;
354 log_font->offset =
offset;
425 if ( size_increment )
439 FT_ERROR((
"pfr_log_font_load: invalid logical font table\n" ));
474 if ( phy_font->num_strikes +
count > phy_font->max_strikes )
480 phy_font->num_strikes,
484 phy_font->max_strikes = new_max;
487 size1 = 1 + 1 + 1 + 2 + 2 + 1;
503 strike = phy_font->strikes + phy_font->num_strikes;
507 for (
n = 0;
n <
count;
n++, strike++ )
532 phy_font->num_strikes +=
count;
539 FT_ERROR((
"pfr_extra_item_load_bitmap_info:"
540 " invalid bitmap info table\n" ));
565 if ( phy_font->font_id )
573 phy_font->font_id[
len] = 0;
592 if ( phy_font->vertical.stem_snaps )
598 num_vert =
count & 15;
599 num_horz =
count >> 4;
600 count = num_vert + num_horz;
607 phy_font->vertical.stem_snaps = snaps;
608 phy_font->horizontal.stem_snaps = snaps + num_vert;
618 FT_ERROR((
"pfr_extra_item_load_stem_snaps:"
619 " invalid stem snaps table\n" ));
644 item->offset = phy_font->offset +
647#ifndef PFR_CONFIG_NO_CHECKS
651 item->pair_size += 2;
654 item->pair_size += 1;
661 if (
item->pair_count > 0 )
675 q =
p +
item->pair_size * (
item->pair_count - 1 );
689 q =
p +
item->pair_size * (
item->pair_count - 1 );
698 *phy_font->kern_items_tail =
item;
699 phy_font->kern_items_tail = &
item->next;
700 phy_font->num_kern_pairs +=
item->pair_count;
715 FT_ERROR((
"pfr_extra_item_load_kerning_pairs:"
716 " invalid kerning pairs table\n" ));
749 if (
len > 0 &&
p[
len - 1] == 0 )
755 for (
n = 0;
n <
len;
n++ )
756 if (
p[
n] < 32 ||
p[
n] > 127 )
782 FT_FREE( phy_font->family_name );
783 FT_FREE( phy_font->style_name );
785 FT_FREE( phy_font->vertical.stem_snaps );
786 phy_font->vertical.num_stem_snaps = 0;
788 phy_font->horizontal.stem_snaps =
NULL;
789 phy_font->horizontal.num_stem_snaps = 0;
792 phy_font->num_strikes = 0;
793 phy_font->max_strikes = 0;
796 phy_font->num_chars = 0;
797 phy_font->chars_offset = 0;
799 FT_FREE( phy_font->blue_values );
800 phy_font->num_blue_values = 0;
806 item = phy_font->kern_items;
813 phy_font->kern_items =
NULL;
814 phy_font->kern_items_tail =
NULL;
817 phy_font->num_kern_pairs = 0;
835 phy_font->memory =
memory;
836 phy_font->offset =
offset;
838 phy_font->kern_items =
NULL;
839 phy_font->kern_items_tail = &phy_font->kern_items;
845 phy_font->cursor =
stream->cursor;
892 while ( num_aux > 0 )
901 if ( length < 4 || length > num_aux )
913 &phy_font->family_name );
932 &phy_font->style_name );
1010 : phy_font->standard_advance;
1037 phy_font->cursor =
NULL;
1044 FT_ERROR((
"pfr_phy_font_load: invalid physical font table\n" ));
static const WCHAR version[]
#define FT_CALLBACK_DEF(x)
#define FT_ERROR(varformat)
#define FT_NEW_ARRAY(ptr, count)
#define FT_ALLOC(ptr, size)
#define FT_RENEW_ARRAY(ptr, curcnt, newcnt)
#define FT_MEM_COPY(dest, source, count)
#define FT_PAD_CEIL(x, n)
#define FT_FRAME_ENTER(size)
#define FT_READ_USHORT(var)
#define FT_STREAM_SEEK(position)
#define FT_READ_UOFF3(var)
#define FT_FRAME_ULONG(f)
#define FT_FRAME_UOFF3(f)
#define FT_STREAM_READ_FIELDS(fields, object)
#define FT_STREAM_SKIP(distance)
#define FT_FRAME_START(size)
#define FT_NEXT_SHORT(buffer)
#define FT_FRAME_USHORT(f)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
FT_BEGIN_HEADER typedef unsigned char FT_Bool
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLdouble GLdouble GLdouble GLdouble q
GLuint GLsizei GLsizei * length
static char memory[1024 *256]
static const FT_Frame_Field pfr_header_fields[]
pfr_extra_item_load_bitmap_info(FT_Byte *p, FT_Byte *limit, PFR_PhyFont phy_font)
pfr_log_font_count(FT_Stream stream, FT_UInt32 section_offset, FT_Long *acount)
pfr_log_font_load(PFR_LogFont log_font, FT_Stream stream, FT_UInt idx, FT_UInt32 section_offset, FT_Bool size_increment)
static const PFR_ExtraItemRec pfr_phy_font_extra_items[]
pfr_extra_items_parse(FT_Byte **pp, FT_Byte *limit, PFR_ExtraItem item_list, FT_Pointer item_data)
pfr_extra_items_skip(FT_Byte **pp, FT_Byte *limit)
pfr_header_load(PFR_Header header, FT_Stream stream)
pfr_extra_item_load_stem_snaps(FT_Byte *p, FT_Byte *limit, PFR_PhyFont phy_font)
pfr_phy_font_done(PFR_PhyFont phy_font, FT_Memory memory)
pfr_header_check(PFR_Header header)
pfr_phy_font_load(PFR_PhyFont phy_font, FT_Stream stream, FT_UInt32 offset, FT_UInt32 size)
pfr_extra_item_load_kerning_pairs(FT_Byte *p, FT_Byte *limit, PFR_PhyFont phy_font)
pfr_extra_item_load_font_id(FT_Byte *p, FT_Byte *limit, PFR_PhyFont phy_font)
static FT_Error pfr_aux_name_load(FT_Byte *p, FT_UInt len, FT_Memory memory, FT_String **astring)
#define PFR_NEXT_ULONG(p)
#define PFR_NEXT_SHORT(p)
FT_Error(* PFR_ExtraItem_ParseFunc)(FT_Byte *p, FT_Byte *limit, FT_Pointer data)
#define PFR_NEXT_USHORT(p)
#define PFR_CHECK_SIZE(x)
#define PFR_PHY_PROPORTIONAL
#define PFR_KERN_INDEX(g1, g2)
#define PFR_LINE_JOIN_MASK
#define PFR_PHY_2BYTE_CHARCODE
#define PFR_PHY_EXTRA_ITEMS
#define PFR_PHY_ASCII_CODE
#define PFR_LOG_EXTRA_ITEMS
#define PFR_KERN_2BYTE_CHAR
#define PFR_PHY_2BYTE_GPS_SIZE
#define PFR_STRIKE_3BYTE_SIZE
#define PFR_PHY_3BYTE_GPS_OFFSET
#define PFR_STRIKE_2BYTE_YPPM
#define PFR_LINE_JOIN_MITER
#define PFR_STRIKE_2BYTE_XPPM
#define PFR_KERN_2BYTE_ADJ
#define PFR_LOG_2BYTE_BOLD
#define PFR_STRIKE_3BYTE_OFFSET
FT_BEGIN_HEADER struct PFR_HeaderRec_ * PFR_Header
#define PFR_STRIKE_2BYTE_COUNT
#define PFR_LOG_2BYTE_STROKE
static unsigned __int64 next
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size