102 UInt16 width;
103 UInt16 height;
104 UInt16 rowBytes;
105 UInt8 managed;
106 float topLeftX;
107 float topLeftY;
108 void *cellInfo;
109 UInt8 *image;
110 } GlyphInfo;
111
112 /* We use fffe and ffff as meaning invisible glyphs which have no
113 * image, or advance and an empty outline.
114 * Since there are no valid glyphs with this great a value (watch out for
115 * large fonts in the future!) we can safely use check for >= this value
116 */
117 #define INVISIBLE_GLYPHS 0xfffe
118
119 #define GSUB_TAG 0x47535542 /* 'GSUB' */
120 #define GPOS_TAG 0x47504F53 /* 'GPOS' */
121 #define GDEF_TAG 0x47444546 /* 'GDEF' */
122 #define MORT_TAG 0x6D6F7274 /* 'mort' */
123 #define MORX_TAG 0x6D6F7278 /* 'morx' */
124 #define KERN_TAG 0x6B65726E /* 'kern' */
125
126 typedef struct TTLayoutTableCacheEntry {
127 const void* ptr;
128 int len;
129 } TTLayoutTableCacheEntry;
130
131 #define LAYOUTCACHE_ENTRIES 6
132
133 typedef struct TTLayoutTableCache {
134 TTLayoutTableCacheEntry entries[LAYOUTCACHE_ENTRIES];
135 void* kernPairs;
136 } TTLayoutTableCache;
137
138 #include "sunfontids.h"
139
140 JNIEXPORT extern TTLayoutTableCache* newLayoutTableCache();
141 JNIEXPORT extern void freeLayoutTableCache(TTLayoutTableCache* ltc);
142
143 /* If font is malformed then scaler context created by particular scaler
144 * will be replaced by null scaler context.
145 * Note that this context is not compatible with structure of the context
146 * object used by particular scaler. Therefore, before using context
147 * scaler has to check if it is NullContext.
148 *
149 * Note that in theory request with NullContext should not even reach native
150 * scaler.
151 *
|
102 UInt16 width;
103 UInt16 height;
104 UInt16 rowBytes;
105 UInt8 managed;
106 float topLeftX;
107 float topLeftY;
108 void *cellInfo;
109 UInt8 *image;
110 } GlyphInfo;
111
112 /* We use fffe and ffff as meaning invisible glyphs which have no
113 * image, or advance and an empty outline.
114 * Since there are no valid glyphs with this great a value (watch out for
115 * large fonts in the future!) we can safely use check for >= this value
116 */
117 #define INVISIBLE_GLYPHS 0xfffe
118
119 #define GSUB_TAG 0x47535542 /* 'GSUB' */
120 #define GPOS_TAG 0x47504F53 /* 'GPOS' */
121 #define GDEF_TAG 0x47444546 /* 'GDEF' */
122 #define HEAD_TAG 0x68656164 /* 'head' */
123 #define MORT_TAG 0x6D6F7274 /* 'mort' */
124 #define MORX_TAG 0x6D6F7278 /* 'morx' */
125 #define KERN_TAG 0x6B65726E /* 'kern' */
126
127 typedef struct TTLayoutTableCacheEntry {
128 const void* ptr;
129 int len;
130 int tag;
131 } TTLayoutTableCacheEntry;
132
133 #define LAYOUTCACHE_ENTRIES 7
134
135 typedef struct TTLayoutTableCache {
136 TTLayoutTableCacheEntry entries[LAYOUTCACHE_ENTRIES];
137 void* kernPairs;
138 } TTLayoutTableCache;
139
140 #include "sunfontids.h"
141
142 JNIEXPORT extern TTLayoutTableCache* newLayoutTableCache();
143 JNIEXPORT extern void freeLayoutTableCache(TTLayoutTableCache* ltc);
144
145 /* If font is malformed then scaler context created by particular scaler
146 * will be replaced by null scaler context.
147 * Note that this context is not compatible with structure of the context
148 * object used by particular scaler. Therefore, before using context
149 * scaler has to check if it is NullContext.
150 *
151 * Note that in theory request with NullContext should not even reach native
152 * scaler.
153 *
|