From fb3b5ccfefc4c38c9184d432703e81f73e1f5bc7 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Thu, 21 May 2009 04:47:05 -0400 Subject: [PATCH] [GPOS] Start MarkBasePosFormat1 --- src/TODO | 1 + src/hb-ot-layout-gpos-private.h | 38 +++++++++++++++++--------------------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/src/TODO b/src/TODO index e4e2a8e..2646ecb 100644 --- a/src/TODO +++ b/src/TODO @@ -2,3 +2,4 @@ - When sanitizing, have to do a second round to make sure no toe-stepping - Implement is_simple() - Static assert PangoOTGlyph vs hb */ +- Face index > 0 and dfont fonts diff --git a/src/hb-ot-layout-gpos-private.h b/src/hb-ot-layout-gpos-private.h index 6426b29..4ef0219 100644 --- a/src/hb-ot-layout-gpos-private.h +++ b/src/hb-ot-layout-gpos-private.h @@ -753,26 +753,18 @@ struct CursivePos ASSERT_SIZE (CursivePos, 2); -struct BaseRecord -{ - /* TODO */ - - private: - Offset baseAnchor[]; /* Array of offsets (one per class) - * to Anchor tables--from beginning - * of BaseArray table--ordered by - * class--zero--based */ -}; -ASSERT_SIZE (BaseRecord, 0); - struct BaseArray { - /* TODO */ + friend struct MarkBasePosFormat1; private: - USHORT baseCount; /* Number of BaseRecords */ - BaseRecord baseRecord[]; /* Array of BaseRecords--in order of - * BaseCoverage Index */ + USHORT len; /* Number of rows */ + OffsetTo + matrix[]; /* Matrix of offsets to Anchor tables-- + * from beginning of BaseArray table-- + * base-major--in order of + * BaseCoverage Index--, mark-minor-- + * ordered by class--zero-based. */ }; ASSERT_SIZE (BaseArray, 2); @@ -784,20 +776,24 @@ struct MarkBasePosFormat1 inline bool apply (APPLY_ARG_DEF) const { /* TODO */ + /* XXXXXXXXXXXXXXX */ return false; } private: USHORT format; /* Format identifier--format = 1 */ - Offset markCoverage; /* Offset to MarkCoverage table--from + OffsetTo + markCoverage; /* Offset to MarkCoverage table--from * beginning of MarkBasePos subtable */ - Offset baseCoverage; /* Offset to BaseCoverage table--from + OffsetTo + baseCoverage; /* Offset to BaseCoverage table--from * beginning of MarkBasePos subtable */ USHORT classCount; /* Number of classes defined for marks */ - Offset markArray; /* Offset to MarkArray table--from + OffsetTo + markArray; /* Offset to MarkArray table--from * beginning of MarkBasePos subtable */ - /* XXXXXXXXXXXXX */ - Offset baseArray; /* Offset to BaseArray table--from + OffsetTo + baseArray; /* Offset to BaseArray table--from * beginning of MarkBasePos subtable */ }; ASSERT_SIZE (MarkBasePosFormat1, 12); -- 2.7.4