]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_8_1_1/tools/misc/src/com/ibm/icu/dev/tool/layout/GSUBWriter.java
Added flags.
[Dictionary.git] / jars / icu4j-4_8_1_1 / tools / misc / src / com / ibm / icu / dev / tool / layout / GSUBWriter.java
1 /*
2  *******************************************************************************
3  * Copyright (C) 1998-2004, International Business Machines Corporation and    *
4  * others. All Rights Reserved.                                                *
5  *******************************************************************************
6  *
7  * Created on Dec 3, 2003
8  *
9  *******************************************************************************
10  */
11 package com.ibm.icu.dev.tool.layout;
12
13 import java.io.PrintStream;
14
15
16 public class GSUBWriter extends OpenTypeTableWriter
17 {
18     private ScriptList scriptList;
19     private FeatureList featureList;
20     private LookupList lookupList;
21     private String scriptName;
22     
23     public GSUBWriter(String theScriptName, ScriptList theScriptList, FeatureList theFeatureList,
24                       LookupList theLookupList)
25     {
26         super(1024);
27         
28         scriptList  = theScriptList;
29         featureList = theFeatureList;
30         lookupList  = theLookupList;
31         scriptName  = theScriptName;
32     }
33     
34     public void writeTable(PrintStream output)
35     {
36         System.out.println("writing " + scriptName + " GSUB table...");
37         
38         // 0x00010000 (fixed1) version number
39         writeData(0x0001);
40         writeData(0x0000);
41         
42         int listOffset = getOutputIndex();
43         
44         writeData(0); // script list offset (fixed later)
45         writeData(0); // feature list offset (fixed later)
46         writeData(0); // lookup list offset (fixed later)
47         
48         fixOffset(listOffset++, 0);
49         scriptList.writeScriptList(this);
50         
51         fixOffset(listOffset++, 0);
52         featureList.writeFeaturetList(this);
53         
54         fixOffset(listOffset++, 0);
55         lookupList.writeLookupList(this);
56
57         output.print("const le_uint8 ");
58         output.print(scriptName);
59         output.println("Shaping::glyphSubstitutionTable[] = {");
60         
61         dumpTable(output, 8);
62         output.println("};\n");
63     }
64 }