Click Here to Install Silverlight*
United StatesChange|All Microsoft Sites
Microsoft

Typography Home Typography Home

Developing fonts > Specifications

OpenType development (3 of 5):
Client support

Supporting dx, dy arrays

Applications can support dx, dy positioning of glyphs if they are running on Windows NT5 and using USP and/or RichEdit 3.0 to create and position the glyph string.

ExtTextOut does not support delta y positioning on Windows NT4, Windows 98, or Windows 95. Applications running on these platforms must call ExtTextOut multiple times in order to support dx, dy positioning arrays, as follows:

  1. Use the OTLS to produce the glyph string from character string.
  2. Use the OTLS to obtain the advance width information for each glyph.
  3. Create a buffer containing only glyphs with the same delta y value (say, dy1). Replace glyphs having other delta y values with placeholders of the associated advance widths.
  4. Call ExtTextOut to position the glyphs with the same delta y (dy1).
  5. Replace appropriate placeholders with next group of glyphs, all of which have the same delta y (say, dy2).
  6. Call ExtTextOut to position the glyphs with the same delta y (dy2).
  7. Replace appropriate placeholders with next group of glyphs, all of which have the same delta y (say, dy3).
  8. Call ExtTextOut to position the glyphs with the same delta y (dy3).
  9. Continue replacing placeholders and calling ExtTextOut for each group of glyphs with discrete delta y values.

This process is illustrated in the diagram below.

Making multiple ExtTextOutcalls to perform dy positioning on systems without dx, dy support:

String of glyphs in glyph buffer
Delta-y values of glyphsdy0dy1dy0dy0dy2dy1dy2dy0
12345678
First Call to ExtTextOut
Penpoint moved dy0posit-ioned dy0width place-holderposit-ioned dy0posit-ioned dy0width place-holderwidth place-holderwidth place-holderposit-ioned dy0
12345678
Next Call to ExtTextOut
Penpoint moved dy1posit-ioned dy0posit-ioned dy1posit-ioned dy0posit-ioned dy0width place-holderposit-ioned dy1width place-holderposit-ioned dy0
12345678
Next Call to ExtTextOut
Penpoint moved dy2posit-ioned dy0posit-ioned dy1posit-ioned dy0posit-ioned dy0posit-ioned dy2posit-ioned dy1posit-ioned dy2posit-ioned dy0
12345678

Next section:  suggested glyphs

introduction | encoding | client support | suggested glyphs | tools


Last updated 27 November 2001.

Top of page


© 2017 Microsoft Corporation. All rights reserved. Contact Us |Terms of Use |Trademarks |Privacy & Cookies