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