resend add missing glyph code to GetGlyphIndices

Dmitry Timoshkov dmitry at codeweavers.com
Mon Aug 14 02:06:06 CDT 2006


"Jeff L" <lats at yless4u.com.au> wrote:

> -DWORD WineEngGetGlyphIndices(GdiFont font, LPCWSTR lpstr, INT count,
> + * */

Strange indentation at the end of a comment.

> +DWORD WineEngGetGlyphIndices(HDC hdc, GdiFont font, LPCWSTR lpstr, INT count,
>  LPWORD pgi, DWORD flags)
> {
>     INT i;
> -
> +    TEXTMETRICW textm;
>     for(i = 0; i < count; i++)
> +    {
>         pgi[i] = get_glyph_index(font, lpstr[i]);
> -
> +        if  (pgi[i] == 0)
> +        {
> +            if  (flags & GGI_MARK_NONEXISTING_GLYPHS)
> +                pgi[i] = 0x001f;                  /* Indicate non existance */
> +            else
> +            {
> +                GetTextMetricsW(hdc, &textm);
> +                pgi[i] = textm.tmDefaultChar;
> +            }
> +        }
> +    }
>     return count;
> }

I'd suggest to move GetTextMetricsW outside of the loop to not kill
the performance.

> +    WCHAR    testtext[] = {'T',0x0000,'s','t',0xffff,0};
> +    WORD     glyphs[(sizeof(testtext)/2)-1];
> + TEXTMETRIC textm;
> +
> +    memset(&lf, 0, sizeof(lf));
> +    strcpy(lf.lfFaceName, "Symbol");
> +    lf.lfHeight = 20;
> +
> +    hfont = CreateFontIndirectA(&lf);
> +    hdc = GetDC(0);
> +
> + ok(GetTextMetrics(hdc, &textm), "GetTextMetric failed\n");

Please set tab width to 8 instead of 4 and do not mix tabs and spaces.

-- 
Dmitry.



More information about the wine-devel mailing list