w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

graphite2::Pass Class Reference

#include <Pass.h>

Collaboration diagram for graphite2::Pass:
[legend]

Public Member Functions

 Pass ()
 
 ~Pass ()
 
bool readPass (const byte *pPass, size_t pass_length, size_t subtable_base, Face &face, enum passtype pt, uint32 version, Error &e)
 
bool runGraphite (vm::Machine &m, FiniteStateMachine &fsm, bool reverse) const
 
void init (Silf *silf)
 
byte collisionLoops () const
 
bool reverseDir () const
 
 Pass ()
 
 ~Pass ()
 
bool readPass (const byte *pPass, size_t pass_length, size_t subtable_base, Face &face, enum passtype pt, uint32 version, Error &e)
 
bool runGraphite (vm::Machine &m, FiniteStateMachine &fsm, bool reverse) const
 
void init (Silf *silf)
 
byte collisionLoops () const
 
bool reverseDir () const
 

Private Member Functions

void findNDoRule (Slot *&iSlot, vm::Machine &, FiniteStateMachine &fsm) const
 
int doAction (const vm::Machine::Code *codeptr, Slot *&slot_out, vm::Machine &) const
 
bool testPassConstraint (vm::Machine &m) const
 
bool testConstraint (const Rule &r, vm::Machine &) const
 
bool readRules (const byte *rule_map, const size_t num_entries, const byte *precontext, const uint16 *sort_key, const uint16 *o_constraint, const byte *constraint_data, const uint16 *o_action, const byte *action_data, Face &, enum passtype pt, Error &e)
 
bool readStates (const byte *starts, const byte *states, const byte *o_rule_map, Face &, Error &e)
 
bool readRanges (const byte *ranges, size_t num_ranges, Error &e)
 
uint16 glyphToCol (const uint16 gid) const
 
bool runFSM (FiniteStateMachine &fsm, Slot *slot) const
 
void dumpRuleEventConsidered (const FiniteStateMachine &fsm, const RuleEntry &re) const
 
void dumpRuleEventOutput (const FiniteStateMachine &fsm, const Rule &r, Slot *os) const
 
void adjustSlot (int delta, Slot *&slot_out, SlotMap &) const
 
bool collisionShift (Segment *seg, int dir, json *const dbgout) const
 
bool collisionKern (Segment *seg, int dir, json *const dbgout) const
 
bool collisionFinish (Segment *seg, GR_MAYBE_UNUSED json *const dbgout) const
 
bool resolveCollisions (Segment *seg, Slot *slot, Slot *start, ShiftCollider &coll, bool isRev, int dir, bool &moved, bool &hasCol, json *const dbgout) const
 
float resolveKern (Segment *seg, Slot *slot, Slot *start, int dir, float &ymin, float &ymax, json *const dbgout) const
 
 Pass (const Pass &)
 
Passoperator= (const Pass &)
 
void findNDoRule (Slot *&iSlot, vm::Machine &, FiniteStateMachine &fsm) const
 
int doAction (const vm::Machine::Code *codeptr, Slot *&slot_out, vm::Machine &) const
 
bool testPassConstraint (vm::Machine &m) const
 
bool testConstraint (const Rule &r, vm::Machine &) const
 
bool readRules (const byte *rule_map, const size_t num_entries, const byte *precontext, const uint16 *sort_key, const uint16 *o_constraint, const byte *constraint_data, const uint16 *o_action, const byte *action_data, Face &, enum passtype pt, Error &e)
 
bool readStates (const byte *starts, const byte *states, const byte *o_rule_map, Face &, Error &e)
 
bool readRanges (const byte *ranges, size_t num_ranges, Error &e)
 
uint16 glyphToCol (const uint16 gid) const
 
bool runFSM (FiniteStateMachine &fsm, Slot *slot) const
 
void dumpRuleEventConsidered (const FiniteStateMachine &fsm, const RuleEntry &re) const
 
void dumpRuleEventOutput (const FiniteStateMachine &fsm, const Rule &r, Slot *os) const
 
void adjustSlot (int delta, Slot *&slot_out, SlotMap &) const
 
bool collisionShift (Segment *seg, int dir, json *const dbgout) const
 
bool collisionKern (Segment *seg, int dir, json *const dbgout) const
 
bool collisionFinish (Segment *seg, GR_MAYBE_UNUSED json *const dbgout) const
 
bool resolveCollisions (Segment *seg, Slot *slot, Slot *start, ShiftCollider &coll, bool isRev, int dir, bool &moved, bool &hasCol, json *const dbgout) const
 
float resolveKern (Segment *seg, Slot *slot, Slot *start, int dir, float &ymin, float &ymax, json *const dbgout) const
 
 Pass (const Pass &)
 
Passoperator= (const Pass &)
 

Private Attributes

const Silfm_silf
 
uint16m_cols
 
Rulem_rules
 
RuleEntrym_ruleMap
 
uint16m_startStates
 
uint16m_transitions
 
Statem_states
 
vm::Machine::Codem_codes
 
bytem_progs
 
byte m_numCollRuns
 
byte m_kernColls
 
byte m_iMaxLoop
 
uint16 m_numGlyphs
 
uint16 m_numRules
 
uint16 m_numStates
 
uint16 m_numTransition
 
uint16 m_numSuccess
 
uint16 m_successStart
 
uint16 m_numColumns
 
byte m_minPreCtxt
 
byte m_maxPreCtxt
 
byte m_colThreshold
 
bool m_isReverseDir
 
vm::Machine::Code m_cPConstraint
 

Detailed Description

Definition at line 48 of file Pass.h.

Constructor & Destructor Documentation

◆ Pass() [1/4]

Pass::Pass ( )

Definition at line 53 of file Pass.cpp.

◆ ~Pass() [1/2]

Pass::~Pass ( )

Definition at line 80 of file Pass.cpp.

References free, m_codes, m_cols, m_progs, m_ruleMap, m_rules, m_startStates, m_states, and m_transitions.

◆ Pass() [2/4]

graphite2::Pass::Pass ( const Pass )
private

◆ Pass() [3/4]

graphite2::Pass::Pass ( )

◆ ~Pass() [2/2]

graphite2::Pass::~Pass ( )

◆ Pass() [4/4]

graphite2::Pass::Pass ( const Pass )
private

Member Function Documentation

◆ adjustSlot() [1/2]

void Pass::adjustSlot ( int  delta,
Slot *&  slot_out,
SlotMap smap 
) const
private

Definition at line 699 of file Pass.cpp.

References delta, graphite2::Slot::next(), graphite2::Slot::prev(), and smap.

◆ adjustSlot() [2/2]

void graphite2::Pass::adjustSlot ( int  delta,
Slot *&  slot_out,
SlotMap  
) const
private

◆ collisionFinish() [1/2]

bool graphite2::Pass::collisionFinish ( Segment seg,
GR_MAYBE_UNUSED json *const  dbgout 
) const
private

Referenced by runGraphite().

◆ collisionFinish() [2/2]

bool graphite2::Pass::collisionFinish ( Segment seg,
GR_MAYBE_UNUSED json *const  dbgout 
) const
private

◆ collisionKern() [1/2]

◆ collisionKern() [2/2]

bool graphite2::Pass::collisionKern ( Segment seg,
int  dir,
json *const  dbgout 
) const
private

◆ collisionLoops() [1/2]

byte graphite2::Pass::collisionLoops ( ) const
inline

Definition at line 58 of file Pass.h.

References m_numCollRuns.

Referenced by graphite2::Silf::runGraphite().

◆ collisionLoops() [2/2]

byte graphite2::Pass::collisionLoops ( ) const
inline

Definition at line 58 of file Pass.h.

References m_numCollRuns.

◆ collisionShift() [1/2]

◆ collisionShift() [2/2]

bool graphite2::Pass::collisionShift ( Segment seg,
int  dir,
json *const  dbgout 
) const
private

◆ doAction() [1/2]

int graphite2::Pass::doAction ( const vm::Machine::Code codeptr,
Slot *&  slot_out,
vm::Machine  
) const
private

◆ doAction() [2/2]

int graphite2::Pass::doAction ( const vm::Machine::Code codeptr,
Slot *&  slot_out,
vm::Machine  
) const
private

◆ dumpRuleEventConsidered() [1/2]

◆ dumpRuleEventConsidered() [2/2]

void graphite2::Pass::dumpRuleEventConsidered ( const FiniteStateMachine fsm,
const RuleEntry re 
) const
private

◆ dumpRuleEventOutput() [1/2]

◆ dumpRuleEventOutput() [2/2]

void graphite2::Pass::dumpRuleEventOutput ( const FiniteStateMachine fsm,
const Rule r,
Slot os 
) const
private

◆ findNDoRule() [1/2]

void graphite2::Pass::findNDoRule ( Slot *&  iSlot,
vm::Machine ,
FiniteStateMachine fsm 
) const
private

Referenced by runGraphite().

◆ findNDoRule() [2/2]

void graphite2::Pass::findNDoRule ( Slot *&  iSlot,
vm::Machine ,
FiniteStateMachine fsm 
) const
private

◆ glyphToCol() [1/2]

uint16 graphite2::Pass::glyphToCol ( const uint16  gid) const
private

◆ glyphToCol() [2/2]

uint16 graphite2::Pass::glyphToCol ( const uint16  gid) const
private

◆ init() [1/2]

void graphite2::Pass::init ( Silf silf)
inline

Definition at line 57 of file Pass.h.

References m_silf.

Referenced by graphite2::Silf::readGraphite().

◆ init() [2/2]

void graphite2::Pass::init ( Silf silf)
inline

Definition at line 57 of file Pass.h.

References m_silf.

◆ operator=() [1/2]

Pass& graphite2::Pass::operator= ( const Pass )
private

◆ operator=() [2/2]

Pass& graphite2::Pass::operator= ( const Pass )
private

◆ readPass() [1/2]

◆ readPass() [2/2]

bool graphite2::Pass::readPass ( const byte pPass,
size_t  pass_length,
size_t  subtable_base,
Face face,
enum passtype  pt,
uint32  version,
Error e 
)

◆ readRanges() [1/2]

bool Pass::readRanges ( const byte ranges,
size_t  num_ranges,
Error e 
)
private

◆ readRanges() [2/2]

bool graphite2::Pass::readRanges ( const byte ranges,
size_t  num_ranges,
Error e 
)
private

◆ readRules() [1/2]

bool Pass::readRules ( const byte rule_map,
const size_t  num_entries,
const byte precontext,
const uint16 sort_key,
const uint16 o_constraint,
const byte constraint_data,
const uint16 o_action,
const byte action_data,
Face face,
enum passtype  pt,
Error e 
)
private

◆ readRules() [2/2]

bool graphite2::Pass::readRules ( const byte rule_map,
const size_t  num_entries,
const byte precontext,
const uint16 sort_key,
const uint16 o_constraint,
const byte constraint_data,
const uint16 o_action,
const byte action_data,
Face ,
enum passtype  pt,
Error e 
)
private

◆ readStates() [1/2]

◆ readStates() [2/2]

bool graphite2::Pass::readStates ( const byte starts,
const byte states,
const byte o_rule_map,
Face ,
Error e 
)
private

◆ resolveCollisions() [1/2]

◆ resolveCollisions() [2/2]

bool graphite2::Pass::resolveCollisions ( Segment seg,
Slot slot,
Slot start,
ShiftCollider coll,
bool  isRev,
int  dir,
bool moved,
bool hasCol,
json *const  dbgout 
) const
private

◆ resolveKern() [1/2]

◆ resolveKern() [2/2]

float graphite2::Pass::resolveKern ( Segment seg,
Slot slot,
Slot start,
int  dir,
float &  ymin,
float &  ymax,
json *const  dbgout 
) const
private

◆ reverseDir() [1/2]

bool graphite2::Pass::reverseDir ( ) const
inline

Definition at line 59 of file Pass.h.

References m_isReverseDir.

Referenced by graphite2::Silf::runGraphite().

◆ reverseDir() [2/2]

bool graphite2::Pass::reverseDir ( ) const
inline

Definition at line 59 of file Pass.h.

References m_isReverseDir.

◆ runFSM() [1/2]

◆ runFSM() [2/2]

bool graphite2::Pass::runFSM ( FiniteStateMachine fsm,
Slot slot 
) const
private

◆ runGraphite() [1/2]

◆ runGraphite() [2/2]

bool graphite2::Pass::runGraphite ( vm::Machine m,
FiniteStateMachine fsm,
bool  reverse 
) const

◆ testConstraint() [1/2]

bool graphite2::Pass::testConstraint ( const Rule r,
vm::Machine  
) const
private

◆ testConstraint() [2/2]

bool graphite2::Pass::testConstraint ( const Rule r,
vm::Machine  
) const
private

◆ testPassConstraint() [1/2]

bool graphite2::Pass::testPassConstraint ( vm::Machine m) const
private

Referenced by runGraphite().

◆ testPassConstraint() [2/2]

bool graphite2::Pass::testPassConstraint ( vm::Machine m) const
private

Member Data Documentation

◆ m_codes

vm::Machine::Code * Pass::m_codes
private

Definition at line 94 of file Pass.h.

Referenced by readRules(), and ~Pass().

◆ m_cols

uint16 * Pass::m_cols
private

Definition at line 88 of file Pass.h.

Referenced by readRanges(), runFSM(), and ~Pass().

◆ m_colThreshold

byte Pass::m_colThreshold
private

Definition at line 109 of file Pass.h.

Referenced by readPass(), and resolveCollisions().

◆ m_cPConstraint

vm::Machine::Code Pass::m_cPConstraint
private

Definition at line 111 of file Pass.h.

Referenced by readPass().

◆ m_iMaxLoop

byte Pass::m_iMaxLoop
private

Definition at line 99 of file Pass.h.

Referenced by readPass(), and runGraphite().

◆ m_isReverseDir

bool Pass::m_isReverseDir
private

Definition at line 110 of file Pass.h.

Referenced by readPass(), and reverseDir().

◆ m_kernColls

byte Pass::m_kernColls
private

Definition at line 98 of file Pass.h.

Referenced by readPass(), resolveKern(), and runGraphite().

◆ m_maxPreCtxt

byte Pass::m_maxPreCtxt
private

Definition at line 108 of file Pass.h.

Referenced by readPass(), readRules(), readStates(), and runFSM().

◆ m_minPreCtxt

byte Pass::m_minPreCtxt
private

Definition at line 107 of file Pass.h.

Referenced by readPass(), readRules(), readStates(), and runFSM().

◆ m_numCollRuns

byte Pass::m_numCollRuns
private

Definition at line 97 of file Pass.h.

Referenced by collisionLoops(), collisionShift(), readPass(), and runGraphite().

◆ m_numColumns

uint16 Pass::m_numColumns
private

Definition at line 106 of file Pass.h.

Referenced by readPass(), readRanges(), readStates(), and runFSM().

◆ m_numGlyphs

uint16 Pass::m_numGlyphs
private

Definition at line 100 of file Pass.h.

Referenced by readPass(), readRanges(), and runFSM().

◆ m_numRules

uint16 Pass::m_numRules
private

Definition at line 101 of file Pass.h.

Referenced by readPass(), readRules(), and runGraphite().

◆ m_numStates

uint16 Pass::m_numStates
private

Definition at line 102 of file Pass.h.

Referenced by readPass(), and readStates().

◆ m_numSuccess

uint16 Pass::m_numSuccess
private

Definition at line 104 of file Pass.h.

Referenced by readPass(), and readStates().

◆ m_numTransition

uint16 Pass::m_numTransition
private

Definition at line 103 of file Pass.h.

Referenced by readPass(), readStates(), and runFSM().

◆ m_progs

byte * Pass::m_progs
private

Definition at line 95 of file Pass.h.

Referenced by readRules(), and ~Pass().

◆ m_ruleMap

RuleEntry * Pass::m_ruleMap
private

Definition at line 90 of file Pass.h.

Referenced by readRules(), readStates(), and ~Pass().

◆ m_rules

Rule * Pass::m_rules
private

Definition at line 89 of file Pass.h.

Referenced by dumpRuleEventConsidered(), dumpRuleEventOutput(), readRules(), and ~Pass().

◆ m_silf

const Silf * Pass::m_silf
private

Definition at line 87 of file Pass.h.

Referenced by init(), readPass(), and readRules().

◆ m_startStates

uint16 * Pass::m_startStates
private

Definition at line 91 of file Pass.h.

Referenced by readStates(), runFSM(), and ~Pass().

◆ m_states

State * Pass::m_states
private

Definition at line 93 of file Pass.h.

Referenced by readStates(), runFSM(), and ~Pass().

◆ m_successStart

uint16 Pass::m_successStart
private

Definition at line 105 of file Pass.h.

Referenced by readPass(), and runFSM().

◆ m_transitions

uint16 * Pass::m_transitions
private

Definition at line 92 of file Pass.h.

Referenced by readStates(), runFSM(), and ~Pass().


The documentation for this class was generated from the following files: