commit (HEAD): work toward glyph availabilty checking

From: Tomas Frydrych (tomasfrydrych@yahoo.co.uk)
Date: Sat Jun 21 2003 - 12:27:28 EDT

  • Next message: Tomas Frydrych: "commit (HEAD): removal of the main glyphshaping preference"

    I have made further changes to the glyphshaping engine to allow to
    check for glyph availability, plus added a new virtual function
    bool GR_Font::doesGlyphExist(UT_UCS4Char g).

    For this whole thing to work some platform specific code needs to be
    written; there are two options on each platform:

    1. Modify GR_*Font::measureUnremappedCharForCache so that if a glyph
    is absent its width is set to GR_CW_ABSENT. The GR_Font version of
    doesGlyphExist() then will handle the rest for you.

    2. Overwrite the GR_Font::doesGlyphExist() with a platform-specific
    version.

    Choose which ever will be more efficient on the given platform, i.e.,
    if you can tell in the process of measuring that a glyph is absent,
    it is probably best to use (1), as that will save us having to call
    the system API again.

    For now, this functionality is not turned on. We will see how
    easy/hard it is to implement this. It would be desirable to have this
    prior to 2.0, but I am having hard time to come up with some way of
    determining the presence or absence of a glyph on win32 since the
    win32 font renderer automatically remaps missing glyphs to the
    default character. If anyone knows how to do this, please let me
    know.

    files: gr_Graphics.h/cpp, gr_CharWidths.h, gr_Win32Graphics.h/cpp,
    ut_contextGlyph.h/cpp, fp_TextRun.cpp.

    Tomas



    This archive was generated by hypermail 2.1.4 : Sat Jun 21 2003 - 12:41:02 EDT