summaryrefslogtreecommitdiff
path: root/TODO
blob: 0bf999ab6dba447bd1732a0a34dd41307dfdde51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Shaping
=======

* Use the new PangoCoverage stuff for looking up fonts,
  and implement pango_font_get_shaper().

Layout Driver
=============

The PangoLayout object is a highlevel driver that takes an attributed
string and produces lines of glyphs. As well as just implementing
this, there are various improvements that need to be made to 

* Figure out better ways of doing line breaks. (This may involve
  implementing the TeX/Raph x0-x1 stuff for line breaks.)

* Add attributes data structures, feed attributed strings
  into pango_itemize() (? is this necessary)

X rendering
===========

* The point-size/pixel size handling is not done right. Right
  now we are just assuming pixel == point, because trying to
  use the point-size fields of the X fonts didn't work on
  systems with both 100 and 75 dpi fonts installed.

  We should query the X server for its actual reported value
  and use that to translate point size to pixel size.

  (This doesn't really handle the case of optically scaled
   bitmaps properly, but I think that is an ignorable problem.)

Other rendering engines
======================

Somebody should start working on a libart font-system / renderer
soon, to make sure that the interfaces are suitable.

Engines
=======

* Switch engines to be indentified by properties, instead
  of hardcoded role/language. (?)

Language Modules
================

 * It would be nice to have X based renderers for a few more scripts;
   Arabic in particular is one such script.

 * Once we have a libart renderer, porting Raph's devanagari shaper
   to Pango and C (from Perl) would be a cool demo and test case.
  
 * The clusters set by the current modules need to be set.

Documentation
=============

* Much or all of the X Fonts document from pango.org needs to be moved
  into the API reference.

General
=======

* Report errors from functions, these errors include such things.

  - Invalid string
  - Font does not match 

 Probably the right thing to do here is to use something very close
 to the GConf API ... see Havoc's GException proposal.

* Allow UTF8 strings with embedded NULLs.

* Write a small default shaping engine that only
  draws a placeholder character ... and does that in
  a way that always works.

* Finish coverting over from utils.c to Tom Tromey's libunicode.
  Add the remaining useful functions from utils.c into libunicode.