Aric Stewart : usp10: Use cached values in GPOS functions.

Alexandre Julliard julliard at winehq.org
Mon Aug 13 13:21:18 CDT 2012


Module: wine
Branch: master
Commit: 7819ce61b51f53e0819ee2f335bfee5ff82a5562
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7819ce61b51f53e0819ee2f335bfee5ff82a5562

Author: Aric Stewart <aric at codeweavers.com>
Date:   Tue Jul 31 08:50:06 2012 -0500

usp10: Use cached values in GPOS functions.

---

 dlls/usp10/shape.c |   13 ++-----------
 1 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/dlls/usp10/shape.c b/dlls/usp10/shape.c
index 1ef6039..3d6b303 100644
--- a/dlls/usp10/shape.c
+++ b/dlls/usp10/shape.c
@@ -3285,9 +3285,6 @@ void SHAPE_ApplyOpenTypePositions(HDC hdc, ScriptCache *psc, SCRIPT_ANALYSIS *ps
     const TEXTRANGE_PROPERTIES *rpRangeProperties;
     int i;
     INT dirL;
-    LPOUTLINETEXTMETRICW lpotm;
-    LOGFONTW lf;
-    HFONT hfont;
 
     rpRangeProperties = &ShapingData[psa->eScript].defaultGPOSTextRange;
 
@@ -3296,15 +3293,9 @@ void SHAPE_ApplyOpenTypePositions(HDC hdc, ScriptCache *psc, SCRIPT_ANALYSIS *ps
 
     load_ot_tables(hdc, psc);
 
-    if (!psc->GPOS_Table)
+    if (!psc->GPOS_Table || !psc->otm)
         return;
 
-    i = GetOutlineTextMetricsW( hdc, 0, NULL);
-    lpotm = HeapAlloc(GetProcessHeap(),0,i);
-    GetOutlineTextMetricsW( hdc, i, lpotm);
-    hfont = GetCurrentObject(hdc, OBJ_FONT);
-    GetObjectW(hfont, sizeof(lf), &lf);
-
     if (!psa->fLogicalOrder && psa->fRTL)
         dirL = -1;
     else
@@ -3320,7 +3311,7 @@ void SHAPE_ApplyOpenTypePositions(HDC hdc, ScriptCache *psc, SCRIPT_ANALYSIS *ps
             if (!feature)
                 continue;
 
-            GPOS_apply_feature(lpotm, &lf, piAdvance, psc->GPOS_Table, feature, pwGlyphs, dirL, cGlyphs, pGoffset);
+            GPOS_apply_feature(psc->otm, &psc->lf, piAdvance, psc->GPOS_Table, feature, pwGlyphs, dirL, cGlyphs, pGoffset);
         }
     }
 }




More information about the wine-cvs mailing list