[GPOS] Implement Device support in AnchorFormat3
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 21 May 2009 08:54:01 +0000 (04:54 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Mon, 2 Nov 2009 19:40:15 +0000 (14:40 -0500)
src/hb-ot-layout-gpos-private.h

index a769004..3d12b36 100644 (file)
@@ -176,9 +176,14 @@ struct AnchorFormat3
   inline void get_anchor (hb_ot_layout_t *layout, hb_codepoint_t glyph_id,
                          hb_position_t *x, hb_position_t *y) const
   {
-      /* TODO Device */
-      *x += layout->gpos_info.x_scale * xCoordinate / 0x10000;
-      *y += layout->gpos_info.y_scale * yCoordinate / 0x10000;
+      *x = layout->gpos_info.x_scale * xCoordinate / 0x10000;
+      *y = layout->gpos_info.y_scale * yCoordinate / 0x10000;
+
+      if (!layout->gpos_info.dvi)
+      {
+       *x += (this+xDeviceTable).get_delta (layout->gpos_info.x_ppem) << 6;
+       *y += (this+yDeviceTable).get_delta (layout->gpos_info.y_ppem) << 6;
+      }
   }
 
   private: