提交 13ed4405 编写于 作者: B Behdad Esfahbod

[HB] A step closer to working ChainContext

上级 e8cbaaf6
......@@ -156,12 +156,14 @@ struct Rule {
private:
inline bool apply (LOOKUP_ARGS_DEF, ContextLookupContext &context) const {
const LookupRecord *record = (const LookupRecord *) ((const char *) input + sizeof (input[0]) * (inputCount ? inputCount - 1 : 0));
const LookupRecord *lookupRecord = (const LookupRecord *)
((const char *) input +
sizeof (input[0]) * (inputCount ? inputCount - 1 : 0));
return context_lookup (LOOKUP_ARGS,
inputCount,
input,
lookupCount,
record,
lookupRecord,
context);
}
......@@ -274,7 +276,9 @@ struct ContextFormat3 {
private:
inline bool apply_coverage (LOOKUP_ARGS_DEF, apply_lookup_func_t apply_func) const {
const LookupRecord *record = (const LookupRecord *) ((const char *) coverage + sizeof (coverage[0]) * glyphCount);
const LookupRecord *lookupRecord = (const LookupRecord *)
((const char *) coverage +
sizeof (coverage[0]) * glyphCount);
struct ContextLookupContext context = {
{match_coverage, apply_func},
(char *) this
......@@ -283,7 +287,7 @@ struct ContextFormat3 {
glyphCount,
(const USHORT *) (coverage + 1),
lookupCount,
record,
lookupRecord,
context);
}
......@@ -346,14 +350,20 @@ struct ChainRule {
private:
inline bool apply (LOOKUP_ARGS_DEF, ChainContextLookupContext &context) const {
return false;
// const LookupRecord *record = (const LookupRecord *) ((const char *) input + sizeof (input[0]) * (inputCount ? inputCount - 1 : 0));
const HeadlessArrayOf<USHORT> &input = * (const HeadlessArrayOf<USHORT> *)
((const char *) &backtrack + backtrack.get_size ());
const ArrayOf<USHORT> &lookahead = * (const ArrayOf<USHORT> *)
((const char *) &input + input.get_size ());
const LookupRecord &lookupRecord = * (const LookupRecord *)
((const char *) &lookahead + lookahead.get_size ());
// XXXXXXXXXXXXXXXXXX
// return context_lookup (LOOKUP_ARGS,
// inputCount,
// input,
// lookupCount,
// record,
// context);
return false;
}
......@@ -482,12 +492,18 @@ struct ChainContextFormat3 {
private:
inline bool apply_coverage (LOOKUP_ARGS_DEF, apply_lookup_func_t apply_func) const {
// const LookupRecord *record = (const LookupRecord *) ((const char *) coverage + sizeof (coverage[0]) * glyphCount);
const OffsetArrayOf<Coverage> &input = * (const OffsetArrayOf<Coverage> *)
((const char *) &backtrack + backtrack.get_size ());
const OffsetArrayOf<Coverage> &lookahead = * (const OffsetArrayOf<Coverage> *)
((const char *) &input + input.get_size ());
const LookupRecord &lookupRecord = * (const LookupRecord *)
((const char *) &lookahead + lookahead.get_size ());
struct ChainContextLookupContext context = {
{match_coverage, apply_func},
{(char *) this, (char *) this, (char *) this}
};
/*
XXXXXXXXXXXXXXXXXXXXX
return context_lookup (LOOKUP_ARGS,
glyphCount,
(const USHORT *) (coverage + 1),
......@@ -511,15 +527,15 @@ struct ChainContextFormat3 {
private:
USHORT format; /* Format identifier--format = 3 */
OffsetArrayOf<Coverage>
backtrackCoverage; /* Array of coverage tables
backtrack; /* Array of coverage tables
* in backtracking sequence, in glyph
* sequence order */
OffsetArrayOf<Coverage>
inputCoverageX ; /* Array of coverage
inputX ; /* Array of coverage
* tables in input sequence, in glyph
* sequence order */
OffsetArrayOf<Coverage>
lookaheadCoverageX; /* Array of coverage tables
lookaheadX; /* Array of coverage tables
* in lookahead sequence, in glyph
* sequence order */
ArrayOf<LookupRecord>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册