/* ******************************************************************************* * Copyright (C) 1998-2004, 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; public class GSUBWriter extends OpenTypeTableWriter { private ScriptList scriptList; private FeatureList featureList; private LookupList lookupList; private String scriptName; public GSUBWriter(String theScriptName, ScriptList theScriptList, FeatureList theFeatureList, LookupList theLookupList) { super(1024); scriptList = theScriptList; featureList = theFeatureList; lookupList = theLookupList; scriptName = theScriptName; } public void writeTable(PrintStream output) { System.out.println("writing " + scriptName + " GSUB table..."); // 0x00010000 (fixed1) version number writeData(0x0001); writeData(0x0000); int listOffset = getOutputIndex(); writeData(0); // script list offset (fixed later) writeData(0); // feature list offset (fixed later) writeData(0); // lookup list offset (fixed later) fixOffset(listOffset++, 0); scriptList.writeScriptList(this); fixOffset(listOffset++, 0); featureList.writeFeaturetList(this); fixOffset(listOffset++, 0); lookupList.writeLookupList(this); output.print("const le_uint8 "); output.print(scriptName); output.println("Shaping::glyphSubstitutionTable[] = {"); dumpTable(output, 8); output.println("};\n"); } }