blob: c6fcf377fe92d6230f8bac501bf41b914a0518e5 [file] [log] [blame]
/*
*******************************************************************************
* 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");
}
}