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