[pango/harfbuzz-ng] [GPOS] Start MarkBasePosFormat1
- From: Behdad Esfahbod <behdad src gnome org>
- To: svn-commits-list gnome org
- Subject: [pango/harfbuzz-ng] [GPOS] Start MarkBasePosFormat1
- Date: Thu, 21 May 2009 14:14:25 -0400 (EDT)
commit 93e5da2de8070410b5e8978dfa3a261e6d7f00a4
Author: Behdad Esfahbod <behdad behdad org>
Date: Thu May 21 04:47:05 2009 -0400
[GPOS] Start MarkBasePosFormat1
---
pango/opentype/TODO | 1 +
pango/opentype/hb-ot-layout-gpos-private.h | 38 ++++++++++++---------------
2 files changed, 18 insertions(+), 21 deletions(-)
diff --git a/pango/opentype/TODO b/pango/opentype/TODO
index e4e2a8e..2646ecb 100644
--- a/pango/opentype/TODO
+++ b/pango/opentype/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/pango/opentype/hb-ot-layout-gpos-private.h b/pango/opentype/hb-ot-layout-gpos-private.h
index 6426b29..4ef0219 100644
--- a/pango/opentype/hb-ot-layout-gpos-private.h
+++ b/pango/opentype/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<Anchor>
+ 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<Coverage>
+ markCoverage; /* Offset to MarkCoverage table--from
* beginning of MarkBasePos subtable */
- Offset baseCoverage; /* Offset to BaseCoverage table--from
+ OffsetTo<Coverage>
+ 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>
+ markArray; /* Offset to MarkArray table--from
* beginning of MarkBasePos subtable */
- /* XXXXXXXXXXXXX */
- Offset baseArray; /* Offset to BaseArray table--from
+ OffsetTo<BaseArray>
+ baseArray; /* Offset to BaseArray table--from
* beginning of MarkBasePos subtable */
};
ASSERT_SIZE (MarkBasePosFormat1, 12);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]