Speed up GetTextExtentExPointW (Take 3)
Huw Davies
h.davies1 at physics.ox.ac.uk
Mon Jul 10 16:12:55 CDT 2006
On Mon, Jul 10, 2006 at 01:24:53PM -0700, Dan Hipschman wrote:
>
> Hi,
>
> This is a fix for http://bugs.winehq.org/show_bug.cgi?id=5569 It speeds up
> the loading of the EULA for the trial version of Acrobat by about 50x. Since
> the last attempt at this fix I improved performance in the case where both
> lpnFit and alpDx are NULL. I also added a few more tests to cover each of
> the four cases where lpnFit and alpDx are NULL/non-NULL. The tests pass in
> both Wine and XP Pro. If you don't accept this, please let me know what I can
> do to improve it. Thanks.
There are GetTextExtentPoint entry points in both winex11.drv and
wineps.drv. Both of these will need to be updated to
GetTextExtentExPoint.
For one other niggle see below.
> diff --git a/dlls/gdi/freetype.c b/dlls/gdi/freetype.c
> index 9f52e60..2020d9d 100644
> --- a/dlls/gdi/freetype.c
> +++ b/dlls/gdi/freetype.c
> @@ -3849,32 +3849,43 @@ BOOL WineEngGetCharABCWidthsI(GdiFont fo
...
>
> size->cx = 0;
> WineEngGetTextMetrics(font, &tm);
> size->cy = tm.tmHeight;
>
> - for(idx = 0; idx < count; idx++) {
> - get_glyph_index_linked(font, wstr[idx], &linked_font, &glyph_index);
> + for (i = 0; i < count; ++i)
> + {
> + get_glyph_index_linked(font, wstr[i], &linked_font, &glyph_index);
Please don't add in this sort of change, it just makes the patch even larger.
Huw.
More information about the wine-devel
mailing list