From d796c9dd933ab96ec83b9a634feedd5d32e1ba3f Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 8 Nov 2011 12:31:36 -0600 Subject: Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731 --- doc/html/emb-fonts.html | 169 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 doc/html/emb-fonts.html (limited to 'doc/html/emb-fonts.html') diff --git a/doc/html/emb-fonts.html b/doc/html/emb-fonts.html new file mode 100644 index 00000000..da311789 --- /dev/null +++ b/doc/html/emb-fonts.html @@ -0,0 +1,169 @@ + + + + + +Fonts in TQt/Embedded + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

Fonts in TQt/Embedded

+ + +

Supported Formats +

+

TQt/Embedded supports four font formats: +

+ + + + +
TrueType (TTF) +The scalable font technology now standard on MS-Windows and Apple +Macintosh, and becoming popular on X11. +
Postscript Type1 (PFA/PFB) +Scalable fonts often used by printers, also popular on X11. These +are similar in functionality to TTF fonts and are not discussed +further in this document. +
Bitmap Distribution Format
fonts (BDF)
+
A standard format for non-scalable fonts. A large number of BDF +fonts are supplied as part of standard X11 distributions - most of +these can be used with TQt/Embedded. You should not use these in a +production system: they are very slow to load and take up a lot of +storage space. Instead, render the BDF to a TQPF. +
TQt Prerendered Font (TQPF) +A light-weight non-scalable font format specific to TQt/Embedded. +
+

Support for each of these font formats (except TQPF which is always +enabled) can be enabled or disabled independently by using the TQt/Embedded Features Definition. There is +support in TQt/Embedded for writing a TQPF font file from any font, so +you can initially enable TTF and BDF formats, save TQPF files for the +fonts and sizes you need, then remove TTF and BDF support. +

See tools/makeqpf for a tool that helps +produce TQPF files from the TTF and BDF, or just run your application +with the -savefonts option. +

Memory Retquirements +

+

With TTF fonts, each character in the font at a given point size is +only rendered when first used in a drawing or metrics operation. With +BDF fonts all characters are rendered when the font is used. +With TQPF fonts, the characters are stored in the same format that TQt +uses for drawing. +

For example, a 10-point Times font containing the ASCII characters uses +around 1300 bytes when stored in TQPF format. +

Taking advantage of the way the TQPF format is structured, TQt/Embedded +memory-maps the data rather than reading and parsing it. +This reduces RAM consumption even further. +

Scalable fonts use a larger amount of memory per font, but +these fonts provide a memory saving if many different sizes of each +font are needed. +

Smooth Fonts +

+

TTF, PFA, and TQPF fonts can be rendered as smooth anti-aliased +fonts to give superior readability, especially on low-resolution +devices. The difference between smooth and non-smooth fonts is +illustrated below (you may need to change your display to low +resolution to see the difference): +

unsmooth
+

smooth
+

Unicode +

+

All fonts used by TQt/Embedded use the Unicode character encoding. +Most fonts available today use this encoding, but they usually don't +contain all the Unicode characters. A complete 16-point Unicode +font uses over 1 MB of memory. +

The font definition file +

+

When TQt/Embedded applications run, they look for a file called +$QTDIR/lib/fonts/fontdir or +/usr/local/qt-embedded/lib/fonts/fontdir. This file defines the +fonts available to the application. It has the following format: +

+name file renderer italic weight size flags +
+where +

+
Field Value +
name Helvetica, Times, etc. +
file helvR0810.bdf, verdana.ttf, etc. +
renderer BDF or FT +
italic y or n +
weight 50 is normal, 75 is bold, etc. +
size 0 for scalable or point size * 10 (i.e. 120 +for 12pt) +
flags
    +
  • s: smooth (anti-aliased) +
  • u: Unicode range when saving (default is Latin-1) +
  • a: ASCII range when saving (default is Latin-1) +
+
+

The font definition file does not specify TQPF fonts; these are loaded +directly from the directory containing the fontdir file, and must +be named name_size_weightitalicflag.qpf, where +

+
Field Value +
name helvetica, times, etc. (in lowercase) +
size point size * 10 (i.e. 120 for 12pt) +
italicflag i for italic, otherwise nothing. +
weight 50 is normal, 75 is bold, etc. +
+

If an application is run with the -savefonts command-line option, +then whenever a font other than a TQPF font is used, a corresponding TQPF file +is saved. This allows you to easily find the font usage of your applications +and to generate TQPF files so that you can eventually reduce the memory +usage of your applications by disabling TTF and BDF support from TQt/Embedded, +or by modifying the initialization of qws_savefonts in +kernel/qapplication_qws.cpp of the TQt/Embedded library source code. +In extreme cases of memory-saving, it is possible to save partially-rendered +fonts (i.e. only the characters in "Product NameTM") if you are +certain that these are the only characters you will need from the font. +See TQMemoryManager::savePrerenderedFont() for this functionality. +

Notes +

+

The font definition file, naming conventions for font files, and the format +of TQPF files may change in versions of TQt/Embedded after 3. +

+To generate TQPF files of different rotations, the program must be re-run with +an orientation that matches the desired rotation of the TQPF output. An example to +generate all 4 rotations of fonts would be to run the following at a real framebuffer: +

+for dpy in LinuxFb Transformed:Rot90 Transformed:Rot180 Transformed:Rot270
+do
+    TQWS_DISPLAY=$dpy ./makeqpf "$@"
+done
+

If programs are only ever run in one orientation on a device, only the one +appropriate set of fonts is needed. +

+When enabled, TQt/Embedded uses the powerful FreeType2 library to implement +TrueType and Type1 support. +

+ +


+ +
Copyright © 2007 +TrolltechTrademarks +
TQt 3.3.8
+
+ -- cgit v1.2.1