| Q:Q: | What is XcgfK? |
| A: | XcgfK is text rendering system. It includes text related services
such as
text encodingtext encoding,
rasterizingrasterizing,
vectorizingvectorizing,
page layoutpage layout,
language script processinglanguage script processing and
typographical featurestypographical features.
These services are provided through a set of high-level APIs that
an application may use. For example, an application may render text with a single
API call that draws a text in Urdu with a named font, a list of OTL typographical features and text
justification formatting.
|
| Q:Q: | How is XcgfK pronounced? |
| A: | Ex-ce-ge-ef-kay.
|
| Q:Q: | Is XcgfK based on any third-party library or system? |
| A: | No. There are many quite excellent systems that does similar tasks that
XcgfK does, such as GDI/TrueType, ATM, FreeType, Uniscribe, ICU, and a whole lot of other systems. The memory
requirements found on some hand-held devices such as PalmOS, pretty much excluded the possibility of using any
of these systems in any shape of form. XcgfK is not even using common run-time routines like sin() or
sprintf() because they are either not reliably available on all supported platforms or do not meet memory
and/or performance requirements. A very special architecture is needed to support quite complex computer graphics
operations without allocating any memory at all. (Keep in mind that a system like an old PalmPilot has 64 KB of
memory in *total* for memory allocation, and that is mostly needed by the application using XcgfK).
|
| Q:Q: | How fast is XcgfK compared to other systems? |
| A: | Typically notably faster. Performance are hard to compare though,
since different systems provide different text services. For example, A 20% speed improvement was seen
on a revent test when rendering a system font (Verdana) at a typical font size (12pt) with font smoothing
turned on. More demanding cases, for example when very large fonts are used or when a language that require
a lot of script processing, are significantly faster than many other systems. Please note also that comparing
system would only make sense when talking about specific system versions. Most systems are evolving and performance
is sure to change over time for any text related rendering system.
|
| Q:Q: | How does XcgfK compare to other systems in terms of quality? |
| A: | The quality of XcgfK is typically quite high. An independent source concluded
that text produced with an XCGF was of higher quality than when rendered with the native rasterizer.
|
| Q:Q: | Does XcgfK support TrueType instructions or Type 1 hints? |
| A: | Although such technologies are designed to improve on the look of
text at small size, it comes at a great cost. It can be time consuming to produce such data, it's
often covered by patens, and most importantly it causes quality problems (yes, an unfortunate paradox). Hints
and instructions may (and typically do) have adverse effects of the text rendering quality. For example,
a font created back in 1995 for Windows95
may look really bad on Windows Vista. The reason for that is that the used hint instructions are optimized
for black and white rendering of a specific rasterizer that had limited support for rendering hair-line features.
Trying to use such a font with gray scales or Cleartype can give really bad
results. In general, hints tends to lock down fonts to specific rendering modes and specific rasterizer versions.
Another more pragmatic reasons is that font vendors tends to auto-generate such hint instructions, with
quite moderate results. More recent operating systems and high-end system are chosing *not* to support
hint instructions for these reasons. Newer rendering algorithms has basically outdated these
technologies. XcgfK is 100% hint free. It ensures a high level of quality regardless of font format
or if it contains hints or not.
|