diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c index c3b0a173695..b2b4b3f191c 100644 --- a/dlls/usp10/usp10.c +++ b/dlls/usp10/usp10.c @@ -1682,3 +1682,35 @@ HRESULT WINAPI ScriptStringGetOrder(SCRIPT_STRING_ANALYSIS ssa, UINT *order) return S_OK; } + +/*********************************************************************** + * ScriptGetLogicalWidths (USP10.@) + * + * Convert advance widths to logical widths. + * + * PARAMS + * sa [I] Script analysis. + * nbchars [I] Number of characters. + * nbglyphs [I] Number of glyphs. + * glyph_width [I] Array of glyph widths. + * log_clust [I] Array of logical clusters. + * sva [I] Visual attributes. + * widths [O] Array of logical widths. + * + * RETURNS + * Success: S_OK + * Failure: a non-zero HRESULT. + */ +HRESULT WINAPI ScriptGetLogicalWidths(const SCRIPT_ANALYSIS *sa, int nbchars, int nbglyphs, + const int *glyph_width, const WORD *log_clust, + const SCRIPT_VISATTR *sva, int *widths) +{ + int i; + + TRACE("(%p, %d, %d, %p, %p, %p, %p)\n", + sa, nbchars, nbglyphs, glyph_width, log_clust, sva, widths); + + /* FIXME */ + for (i = 0; i < nbchars; i++) widths[i] = glyph_width[i]; + return S_OK; +} diff --git a/dlls/usp10/usp10.spec b/dlls/usp10/usp10.spec index df07f43bc08..ac1506e9df0 100644 --- a/dlls/usp10/usp10.spec +++ b/dlls/usp10/usp10.spec @@ -8,7 +8,7 @@ @ stdcall ScriptGetCMap(ptr ptr ptr long long ptr) @ stdcall ScriptGetFontProperties(long ptr ptr) @ stdcall ScriptGetGlyphABCWidth(ptr ptr long ptr) -@ stub ScriptGetLogicalWidths +@ stdcall ScriptGetLogicalWidths(ptr long long ptr ptr ptr ptr) @ stdcall ScriptGetProperties(ptr long) @ stdcall ScriptIsComplex(wstr long long) @ stdcall ScriptItemize(wstr long long ptr ptr ptr ptr)