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