blob: ed3adff662a6af31ba135b9d4e140da994de32c7 (
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
heh. bug in pdfselect on compressed object streams. gc takes forever, no objects remain...
lazy nametree
lazy pagetree
cmap one-to-many mapping
builtin standard cmap files (?)
put unicode strings in text object, not font (a la metro)
xml parser
unicode normaliser
path stroke/dash/flatten work on real path struct
turn into gel as second step after stroke/flatten
add intersector for metro union/xor/difference stuff
image rescale to exact size instead of by integer quantas
public / private api
top-level "driver" architecture (metro/pdf/whatever input)
fix the shading code:
3 levels of detail patch mesh (quad, patch, tensor)
subdivide to triangles on the fly
draw tris as before
reuse more code in the parsing
error cleanup
think about rewriting file stream api (as the ultimate STDIO replacement):
use function pointers?
dont use pipeline filter?
memoryfile
diskfile
filterfile -> (filters data from another file)
---
immediate plan:
* clean up and 'freeze' public api
* get font bbox from fontdescriptor if available
* refactor image loading
* refactor xref loading/repair
* restructure build.c and interpret.c (ftb vs csi)
* fix the colorspace/pattern/shading material mess
* font loading:
- configuration... where to find system files (asian font archive?)
- system fontfile + cmap store
- embedded fontfile store
- split type3 and ftfont malloc (dont waste t3 charprocs on ft fonts)
- make ftfontfile separate struct w/ refcounting
- refactor font loading more. simple/cid/type3 have too much in common.
* structure low/high level stuff
- rewrite outline parser
- implement comments
* clean high-level api
- go through spec and check all features!
- altivec optimize
---
std rsrc fmt (v3)
transparency (v2)
- everything!
colorspace conversions (v2)
- fast color cubes
- proper colorspace conversions
- gamut compression
- extended render intents
image rendering (v2)
- tiles
- dct case
- better filter than box
- lazy decoding
rendering
- fix glyphcache evictlast
- bbox culling per glyph
- font focus
- render cache (link-nodes and scaled images and colorspaced shades)
fz_optimizetree()
- error & memory
- concatenate chained transforms
- remove identity transforms
---
for filters:
validate ahxd pushback
go through eof responsibility
be more defensive of api user errors
flate needin/needout
jbig2 rewrite
dctencode params
dctdecode app marker
|