From: Tomas Frydrych (tomasfrydrych@yahoo.co.uk)
Date: Sat Jun 21 2003 - 12:27:28 EDT
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