Unit TTFontsTypes
Description
Unit definiujacy typy do fontow truetype.
Definicje tych fontow moga zostac wygenerowane automatycznie przez moj program font2pascal.
Krotko, na czym polegaja True-type fonty ? Font = ciag znakow. Znak = ciag polygonow. Polygon = Ciag Linii. Linia = Linia lamana / Krzywa beziera (ciag punktow, w kazdym razie, tylko roznie interpretowany)
Zeby narysowac taki font trzeba rozwazyc wszystkie polygony. Punkty ktore znajduja sie w nieparzystej liczbie powinny byc wypelnione kolorem, pozostale punkty nie naleza do literki. W ten sposob np. literka "o" sklada sie z dwoch polygonow : zewnetrznego i wewnetrznego. Punkty na zewnatrz maja winding count = 0, punkty wewnarz wewnetrznego okregu maja winding count = 2 wiec tez nie naleza do literki. Tylko punkty pomiedzy dwoma koleczkami maja winding count = 1 i one wlasnie tworza literke.
Z powyzszego wynika jak wyrenderowac literke pod OpenGL'em : uzyc tesselatora z GLU_TESS_WINDING_ODD i wrzucic mu wszystkie polygony. Krzywe Beziera mozna rozkladac na linie lamane z taka dokladnoscia jakiej chcesz (mozna nawet brac je za linie lamane - korzystajac z milych wlasnosci krzywych Beziera, wziecie krzywej lamanej z punktow kontrolnych krzywej tez jest jakims przyblizeniem krzywej). (patrz OpenGLTTFonts)
Overview
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Description
Functions and Procedures
function TTFontSimpleDescend(font: PTrueTypeFont): Single; |
|
liczy Descend prosto, czyli jako (height y) - (height a). To bedzie dzialac dobrze dla normalnych fontow. Dla nienormalnych nalezaloby przegladnac informacje o wszystkich literkach i wybrac ta z najwiekszym Descend'em.
|
function TTFontSimpleRowHeight(font: PTrueTypeFont): Single; |
|
simple row height := height('Mg')
|
function TTFontTextWidth(font: PTrueTypeFont; const s: string): Single; |
|
|
function TTFontTextHeight(font: PTrueTypeFont; const s: string): Single; |
|
|
Types
TPolygonKind = (...); |
Values
-
pkNewPolygon:
-
pkLines:
-
pkBezier:
-
pkPoint:
|
TTrueTypeFont = array[char] of PTTFChar; |
|
|
Generated by PasDoc 0.10.0 on 2008-02-25 00:00:38