[HB] Remove hinting setting and use ppem==0 to mean "no hinting"
diff --git a/src/hb-ot-layout-gpos-private.h b/src/hb-ot-layout-gpos-private.h
index 619b4c4..b0695c1 100644
--- a/src/hb-ot-layout-gpos-private.h
+++ b/src/hb-ot-layout-gpos-private.h
@@ -109,19 +109,32 @@
if (format & yAdvance)
glyph_pos->y_advance += y_scale * *(SHORT*)values++ / 0x10000;
- if (HB_LIKELY (!layout->gpos_info.dvi))
- {
- x_ppem = layout->gpos_info.x_ppem;
- y_ppem = layout->gpos_info.y_ppem;
- /* pixel -> fractional pixel */
- if (format & xPlaDevice)
+ x_ppem = layout->gpos_info.x_ppem;
+ y_ppem = layout->gpos_info.y_ppem;
+ /* pixel -> fractional pixel */
+ if (format & xPlaDevice) {
+ if (x_ppem)
glyph_pos->x_pos += (base+*(OffsetTo<Device>*)values++).get_delta (x_ppem) << 6;
- if (format & yPlaDevice)
+ else
+ values++;
+ }
+ if (format & yPlaDevice) {
+ if (y_ppem)
glyph_pos->y_pos += (base+*(OffsetTo<Device>*)values++).get_delta (y_ppem) << 6;
- if (format & xAdvDevice)
+ else
+ values++;
+ }
+ if (format & xAdvDevice) {
+ if (x_ppem)
glyph_pos->x_advance += (base+*(OffsetTo<Device>*)values++).get_delta (x_ppem) << 6;
- if (format & yAdvDevice)
+ else
+ values++;
+ }
+ if (format & yAdvDevice) {
+ if (y_ppem)
glyph_pos->y_advance += (base+*(OffsetTo<Device>*)values++).get_delta (y_ppem) << 6;
+ else
+ values++;
}
}
};
@@ -179,11 +192,10 @@
*x = layout->gpos_info.x_scale * xCoordinate / 0x10000;
*y = layout->gpos_info.y_scale * yCoordinate / 0x10000;
- if (!layout->gpos_info.dvi)
- {
+ if (layout->gpos_info.x_ppem)
*x += (this+xDeviceTable).get_delta (layout->gpos_info.x_ppem) << 6;
+ if (layout->gpos_info.y_ppem)
*y += (this+yDeviceTable).get_delta (layout->gpos_info.y_ppem) << 6;
- }
}
private: