Page Menu
Home
Phabricator (Chris)
Search
Configure Global Search
Log In
Files
F630635
pshrec.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None
pshrec.h
View Options
/***************************************************************************/
/* */
/* pshrec.h */
/* */
/* Postscript (Type1/Type2) hints recorder (specification). */
/* */
/* Copyright 2001, 2002, 2003, 2006, 2008 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
/**************************************************************************/
/* */
/* The functions defined here are called from the Type 1, CID and CFF */
/* font drivers to record the hints of a given character/glyph. */
/* */
/* The hints are recorded in a unified format, and are later processed */
/* by the `optimizer' and `fitter' to adjust the outlines to the pixel */
/* grid. */
/* */
/**************************************************************************/
#ifndef __PSHREC_H__
#define __PSHREC_H__
#include
<ft2build.h>
#include FT_INTERNAL_POSTSCRIPT_HINTS_H
#include
"pshglob.h"
FT_BEGIN_HEADER
/*************************************************************************/
/*************************************************************************/
/***** *****/
/***** GLYPH HINTS RECORDER INTERNALS *****/
/***** *****/
/*************************************************************************/
/*************************************************************************/
/* handle to hint record */
typedef
struct
PS_HintRec_
*
PS_Hint
;
/* hint types */
typedef
enum
PS_Hint_Type_
{
PS_HINT_TYPE_1
=
1
,
PS_HINT_TYPE_2
=
2
}
PS_Hint_Type
;
/* hint flags */
typedef
enum
PS_Hint_Flags_
{
PS_HINT_FLAG_GHOST
=
1
,
PS_HINT_FLAG_BOTTOM
=
2
}
PS_Hint_Flags
;
/* hint descriptor */
typedef
struct
PS_HintRec_
{
FT_Int
pos
;
FT_Int
len
;
FT_UInt
flags
;
}
PS_HintRec
;
#define ps_hint_is_active( x ) ( (x)->flags & PS_HINT_FLAG_ACTIVE )
#define ps_hint_is_ghost( x ) ( (x)->flags & PS_HINT_FLAG_GHOST )
#define ps_hint_is_bottom( x ) ( (x)->flags & PS_HINT_FLAG_BOTTOM )
/* hints table descriptor */
typedef
struct
PS_Hint_TableRec_
{
FT_UInt
num_hints
;
FT_UInt
max_hints
;
PS_Hint
hints
;
}
PS_Hint_TableRec
,
*
PS_Hint_Table
;
/* hint and counter mask descriptor */
typedef
struct
PS_MaskRec_
{
FT_UInt
num_bits
;
FT_UInt
max_bits
;
FT_Byte
*
bytes
;
FT_UInt
end_point
;
}
PS_MaskRec
,
*
PS_Mask
;
/* masks and counters table descriptor */
typedef
struct
PS_Mask_TableRec_
{
FT_UInt
num_masks
;
FT_UInt
max_masks
;
PS_Mask
masks
;
}
PS_Mask_TableRec
,
*
PS_Mask_Table
;
/* dimension-specific hints descriptor */
typedef
struct
PS_DimensionRec_
{
PS_Hint_TableRec
hints
;
PS_Mask_TableRec
masks
;
PS_Mask_TableRec
counters
;
}
PS_DimensionRec
,
*
PS_Dimension
;
/* glyph hints descriptor */
/* dimension 0 => X coordinates + vertical hints/stems */
/* dimension 1 => Y coordinates + horizontal hints/stems */
typedef
struct
PS_HintsRec_
{
FT_Memory
memory
;
FT_Error
error
;
FT_UInt32
magic
;
PS_Hint_Type
hint_type
;
PS_DimensionRec
dimension
[
2
];
}
PS_HintsRec
,
*
PS_Hints
;
/* */
/* initialize hints recorder */
FT_LOCAL
(
FT_Error
)
ps_hints_init
(
PS_Hints
hints
,
FT_Memory
memory
);
/* finalize hints recorder */
FT_LOCAL
(
void
)
ps_hints_done
(
PS_Hints
hints
);
/* initialize Type1 hints recorder interface */
FT_LOCAL
(
void
)
t1_hints_funcs_init
(
T1_Hints_FuncsRec
*
funcs
);
/* initialize Type2 hints recorder interface */
FT_LOCAL
(
void
)
t2_hints_funcs_init
(
T2_Hints_FuncsRec
*
funcs
);
#ifdef DEBUG_HINTER
extern
PS_Hints
ps_debug_hints
;
extern
int
ps_debug_no_horz_hints
;
extern
int
ps_debug_no_vert_hints
;
#endif
/* */
FT_END_HEADER
#endif
/* __PS_HINTER_RECORD_H__ */
/* END */
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Sun, Nov 15, 9:59 AM (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
152246
Default Alt Text
pshrec.h (5 KB)
Attached To
Mode
R80 StarRuler2-Source
Attached
Detach File
Event Timeline