blob: e9c13f9211fa15e155e71ae3301da4157115def7 [file] [log] [blame]
/*
*******************************************************************************
* Copyright (C) 1998-2005, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
* Created on Dec 3, 2003
*
*******************************************************************************
*/
package com.ibm.icu.dev.tool.layout;
import java.io.PrintStream;
class GDEFWriter extends OpenTypeTableWriter
{
ClassTable classTable;
ClassTable markClassTable;
String scriptName;
public GDEFWriter(String scriptName, ClassTable classTable, ClassTable markClassTable)
{
super(1024);
this.classTable = classTable;
this.markClassTable = markClassTable;
this.scriptName = scriptName;
}
public void writeTable(PrintStream output)
{
System.out.println("Writing " + scriptName + " GDEF table...");
// 0x0001000 (fixed1) version number
writeData(0x0001);
writeData(0x0000);
int classDefOffset = getOutputIndex();
writeData(0); // glyphClassDefOffset (will fix later);
writeData(0); // attachListOffset
writeData(0); // ligCaretListOffset
writeData(0); // markAttachClassDefOffset
fixOffset(classDefOffset++, 0);
System.out.println("Writing glyph class definition table...");
classTable.writeClassTable(this);
// skip over attachListOffset, ligCaretListOffset
classDefOffset += 2;
if (markClassTable != null) {
fixOffset(classDefOffset, 0);
System.out.println("Writing mark attach class definition table...");
markClassTable.writeClassTable(this);
}
output.print("const le_uint8 ");
output.print(scriptName);
output.println("Shaping::glyphDefinitionTable[] = {");
dumpTable(output, 8);
output.println("};\n");
}
}