25 lines
1.6 KiB
Markdown
25 lines
1.6 KiB
Markdown
# Layer 3 plan (rendering primitives + fonts) -> workflow 2
|
|||
|
|
|
||
|
|
Stage A (parallel, independent - depend only on the frozen spine):
|
||
|
|
raster raster.odin span-callback scanline AA rasteriser, both fill rules
|
||
|
|
stroke stroke.odin stroke -> Flat_Path, caps/joins/miter/dashes, hairlines
|
||
|
|
blend blend.odin Blend_Mode math, premultiplied compositing, group/mask compose
|
||
|
|
colorfn colorspace.odin + function.odin (coupled: Separation needs a tint transform)
|
||
|
|
cff font_cff.odin CFF/Type2 charstrings, CIDFont CFF, seac, hint-skip
|
||
|
|
truetype font_truetype.odin glyf/loca/cmap/hmtx/post/composite glyphs
|
||
|
|
type1 font_type1.odin PFB/PFA, eexec, Type1 charstrings, seac, flex/hint replacement
|
||
|
|
stdfonts font_standard.odin standard-14 metrics + Standard/WinAnsi/MacRoman/MacExpert/Symbol/ZapfD
|
||
|
|
cmaps cmap.odin embedded CMaps, /ToUnicode, predefined CMap identity + common ones
|
||
|
|
|
||
|
|
Stage B (needs A):
|
||
|
|
image image.odin image XObjects -> RGBA8, /Decode, /ImageMask, /SMask, /Mask, colour key
|
||
|
|
shading shading.odin types 1-7 (function, axial, radial, free/lattice triangle mesh, coons, tensor)
|
||
|
|
font font.odin the PDF font dictionary -> Font, widths, encodings, CID mapping, Type3
|
||
|
|
|
||
|
|
Stage C: integrate + adversarial review + fix
|
||
|
|
|
||
|
|
# Layer 4 plan (interpreter + devices + public API) -> workflow 3
|
||
|
|
pattern.odin, device_raster.odin, device_text.odin, device_list.odin,
|
||
|
|
content.odin, page.odin, annot.odin, outline.odin,
|
||
|
|
examples/pdfinfo, examples/pdfrender, examples/pdftext, README.md
|