1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* 2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius * (C) Copyright IBM Corp. 1998-2011 - All Rights Reserved 4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef __LOENGINE_H 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define __LOENGINE_H 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "LETypes.h" 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 1283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef U_HIDE_INTERNAL_API 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * \file 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * \brief C API for complex text layout. 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * \internal 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This is a technology preview. The API may 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * change significantly. 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The opaque type for a LayoutEngine. 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef void le_engine; 29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The opaque type for a font instance. 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef void le_font; 36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This function returns an le_engine capable of laying out text 39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * in the given font, script and langauge. Note that the LayoutEngine 40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * returned may be a subclass of LayoutEngine. 41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param font - the font of the text 43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param scriptCode - the script of the text 44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param languageCode - the language of the text 45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param typo_flags - flags that control layout features like kerning and ligatures. 46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param success - output parameter set to an error code if the operation fails 47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return an le_engine which can layout text in the given font. 49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_INTERNAL le_engine * U_EXPORT2 53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_create(const le_font *font, 54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 scriptCode, 55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 languageCode, 56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 typo_flags, 57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LEErrorCode *success); 58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This function closes the given LayoutEngine. After 61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * it returns, the le_engine is no longer valid. 62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param engine - the LayoutEngine to close. 64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_INTERNAL void U_EXPORT2 68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_close(le_engine *engine); 69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This routine will compute the glyph, character index and position arrays. 72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param engine - the LayoutEngine 74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param chars - the input character context 75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param offset - the offset of the first character to process 76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param count - the number of characters to process 77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param max - the number of characters in the input context 78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param rightToLeft - TRUE if the characers are in a right to left directional run 79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param x - the initial X position 80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param y - the initial Y position 81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param success - output parameter set to an error code if the operation fails 82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 83ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return the number of glyphs in the glyph array 84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Note: The glyph, character index and position array can be accessed 86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * using the getter routines below. 87ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 88ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Note: If you call this function more than once, you must call the reset() 89ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * function first to free the glyph, character index and position arrays 90ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * allocated by the previous call. 91ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 92ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 93ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 94ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_INTERNAL le_int32 U_EXPORT2 95ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_layoutChars(le_engine *engine, 96ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const LEUnicode chars[], 97ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 offset, 98ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 count, 99ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 max, 100ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_bool rightToLeft, 101ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru float x, 102ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru float y, 103ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LEErrorCode *success); 104ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 105ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 106ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This function returns the number of glyphs in the glyph array. Note 107ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * that the number of glyphs will be greater than or equal to the number 108ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * of characters used to create the LayoutEngine. 109ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 110ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param engine - the LayoutEngine 111ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param success - output parameter set to an error code if the operation fails. 112ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 113ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return the number of glyphs in the glyph array 114ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 115ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 116ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 117ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_INTERNAL le_int32 U_EXPORT2 118ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_getGlyphCount(le_engine *engine, 119ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LEErrorCode *success); 120ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 121ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 122ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This function copies the glyph array into a caller supplied array. 123ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The caller must ensure that the array is large enough to hold all 124ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * the glyphs. 125ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 126ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param engine - the LayoutEngine 127ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param glyphs - the destiniation glyph array 128ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param success - set to an error code if the operation fails 129ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 130ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 131ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 132ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_INTERNAL void U_EXPORT2 133ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_getGlyphs(le_engine *engine, 134ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LEGlyphID glyphs[], 135ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LEErrorCode *success); 136ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 137ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 138ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This function copies the character index array into a caller supplied array. 139ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The caller must ensure that the array is large enough to hold a 140ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * character index for each glyph. 141ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 142ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param engine - the LayoutEngine 143ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param charIndices - the destiniation character index array 144ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param success - set to an error code if the operation fails 145ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 146ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 147ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 148ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_INTERNAL void U_EXPORT2 149ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_getCharIndices(le_engine *engine, 150ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 charIndices[], 151ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LEErrorCode *success); 152ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 153ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 154ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This function copies the character index array into a caller supplied array. 155ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The caller must ensure that the array is large enough to hold a 156ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * character index for each glyph. 157ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 158ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param engine - the LayoutEngine 159ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param charIndices - the destiniation character index array 160ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param indexBase - an offset that will be added to each index. 161ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param success - set to an error code if the operation fails 162ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 163ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 164ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 165ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_INTERNAL void U_EXPORT2 166ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_getCharIndicesWithBase(le_engine *engine, 167ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 charIndices[], 168ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 indexBase, 169ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LEErrorCode *success); 170ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 171ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 172ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This function copies the position array into a caller supplied array. 173ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The caller must ensure that the array is large enough to hold an 174ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * X and Y position for each glyph, plus an extra X and Y for the 175ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * advance of the last glyph. 176ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 177ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param engine - the LayoutEngine 178ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param positions - the destiniation position array 179ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param success - set to an error code if the operation fails 180ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 181ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 182ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 183ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_INTERNAL void U_EXPORT2 184ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_getGlyphPositions(le_engine *engine, 185ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru float positions[], 186ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LEErrorCode *success); 187ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 188ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 189ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This function returns the X and Y position of the glyph at 190ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * the given index. 191ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 192ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Input parameters: 193ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param engine - the LayoutEngine 194ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param glyphIndex - the index of the glyph 195ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 196ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Output parameters: 197ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param x - the glyph's X position 198ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param y - the glyph's Y position 199ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param success - set to an error code if the operation fails 200ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 201ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 202ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 203ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_INTERNAL void U_EXPORT2 204ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_getGlyphPosition(le_engine *engine, 205ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 glyphIndex, 206ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru float *x, 207ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru float *y, 208ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LEErrorCode *success); 209ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 210ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 211ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This function frees the glyph, character index and position arrays 212ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * so that the LayoutEngine can be reused to layout a different 213ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * characer array. (This function is also called by le_close) 214ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 215ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param engine - the LayoutEngine 216ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param success - set to an error code if the operation fails 217ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 218ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 219ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 220ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_INTERNAL void U_EXPORT2 221ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_reset(le_engine *engine, 222ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LEErrorCode *success); 22383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif /* U_HIDE_INTERNAL_API */ 224ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 225ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 226