1.6 KiB
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