[GPOS] Start MarkBasePosFormat1
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 21 May 2009 08:47:05 +0000 (04:47 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Mon, 2 Nov 2009 19:40:15 +0000 (14:40 -0500)
src/TODO
src/hb-ot-layout-gpos-private.h

index e4e2a8e..2646ecb 100644 (file)
--- 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
index 6426b29..4ef0219 100644 (file)
@@ -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);