2 *******************************************************************************
\r
3 * Copyright (C) 1998-2005, International Business Machines Corporation and *
\r
4 * others. All Rights Reserved. *
\r
5 *******************************************************************************
\r
7 * Created on Dec 3, 2003
\r
9 *******************************************************************************
\r
11 package com.ibm.icu.dev.tool.layout;
\r
13 import java.io.PrintStream;
\r
17 class GDEFWriter extends OpenTypeTableWriter
\r
19 ClassTable classTable;
\r
20 ClassTable markClassTable;
\r
23 public GDEFWriter(String scriptName, ClassTable classTable, ClassTable markClassTable)
\r
26 this.classTable = classTable;
\r
27 this.markClassTable = markClassTable;
\r
28 this.scriptName = scriptName;
\r
31 public void writeTable(PrintStream output)
\r
33 System.out.println("Writing " + scriptName + " GDEF table...");
\r
35 // 0x0001000 (fixed1) version number
\r
39 int classDefOffset = getOutputIndex();
\r
40 writeData(0); // glyphClassDefOffset (will fix later);
\r
41 writeData(0); // attachListOffset
\r
42 writeData(0); // ligCaretListOffset
\r
43 writeData(0); // markAttachClassDefOffset
\r
45 fixOffset(classDefOffset++, 0);
\r
47 System.out.println("Writing glyph class definition table...");
\r
48 classTable.writeClassTable(this);
\r
50 // skip over attachListOffset, ligCaretListOffset
\r
51 classDefOffset += 2;
\r
53 if (markClassTable != null) {
\r
54 fixOffset(classDefOffset, 0);
\r
56 System.out.println("Writing mark attach class definition table...");
\r
57 markClassTable.writeClassTable(this);
\r
60 output.print("const le_uint8 ");
\r
61 output.print(scriptName);
\r
62 output.println("Shaping::glyphDefinitionTable[] = {");
\r
64 dumpTable(output, 8);
\r
65 output.println("};\n");
\r