Module: wine Branch: master Commit: 082f98957587aa442b3ae1ffeb5d414bfff41425 URL: http://source.winehq.org/git/wine.git/?a=commit;h=082f98957587aa442b3ae1ffeb...
Author: Huw Davies huw@codeweavers.com Date: Tue Jan 8 16:05:31 2013 +0000
usp10: Simplify the offset calculation by always using ETO_PDY.
---
dlls/usp10/usp10.c | 40 +++++++++------------------------------- 1 files changed, 9 insertions(+), 31 deletions(-)
diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c index 6ff640e..75fe597 100644 --- a/dlls/usp10/usp10.c +++ b/dlls/usp10/usp10.c @@ -3253,41 +3253,19 @@ HRESULT WINAPI ScriptTextOut(const HDC hdc, SCRIPT_CACHE *psc, int x, int y, UIN fuOptions |= ETO_GLYPH_INDEX; /* Say don't do translation to glyph */
lpDx = heap_alloc(cGlyphs * sizeof(INT) * 2); + fuOptions |= ETO_PDY;
- if (pGoffset) - { - for (i = 0; i < cGlyphs; i++) - if (!(fuOptions&ETO_PDY) && pGoffset[i].dv) - fuOptions |= ETO_PDY; - } for (i = 0; i < cGlyphs; i++) { - int idx = i; - if (fuOptions&ETO_PDY) - { - idx *=2; - lpDx[idx+1] = 0; - } - lpDx[idx] = piAdvance[i]; - } - if (pGoffset) - { - for (i = 1; i < cGlyphs; i++) + lpDx[i * 2] = piAdvance[i]; + lpDx[i * 2 + 1] = 0; + + if (pGoffset && i > 0) { - int idx = i; - int prev_idx = i-1; - if (fuOptions&ETO_PDY) - { - idx*=2; - prev_idx = idx-2; - } - lpDx[prev_idx] += pGoffset[i].du; - lpDx[idx] -= pGoffset[i].du; - if (fuOptions&ETO_PDY) - { - lpDx[prev_idx+1] += pGoffset[i].dv; - lpDx[idx+1] -= pGoffset[i].dv; - } + lpDx[(i - 1) * 2] += pGoffset[i].du; + lpDx[(i - 1) * 2 + 1] += pGoffset[i].dv; + lpDx[i * 2] -= pGoffset[i].du; + lpDx[i * 2 + 1] -= pGoffset[i].dv; } }