[pango/harfbuzz-ng] [HB] A step closer to working ChainContext
- From: Behdad Esfahbod <behdad src gnome org>
- To: svn-commits-list gnome org
- Subject: [pango/harfbuzz-ng] [HB] A step closer to working ChainContext
- Date: Mon, 18 May 2009 05:49:22 -0400 (EDT)
commit d9acee5295e6dde5f672c9ce0456520543f5df66
Author: Behdad Esfahbod <behdad behdad org>
Date: Mon May 18 02:14:37 2009 -0400
[HB] A step closer to working ChainContext
---
pango/opentype/hb-ot-layout-gsubgpos-private.h | 36 +++++++++++++++++------
1 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/pango/opentype/hb-ot-layout-gsubgpos-private.h b/pango/opentype/hb-ot-layout-gsubgpos-private.h
index e82941e..0a7281d 100644
--- a/pango/opentype/hb-ot-layout-gsubgpos-private.h
+++ b/pango/opentype/hb-ot-layout-gsubgpos-private.h
@@ -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>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]