mirror of
https://github.com/storytold/effectcraft.git
synced 2026-11-12 05:12:21 +00:00
* PDF functions and mesh shadings: charge retained values, refuse short tables, bound lattice rows and raster work Depth-limit fallbacks were not charged to the function node budget; cached copies of a function deep-copied its coefficient and program vectors while only its nodes were charged; sampled functions made up missing samples as zeros; calculator programs had no size limit; a lattice row was filled before any limit applied; and overlapping mesh triangles each scanned their whole bounding box. The node is charged before the depth check; coefficients, bounds, encode arrays and calculator operators are charged (eight to a node) so cached copies carry their cost; a sampled function shorter than its table is unsupported; calculator programs hold at most 4,096 operators; lattice rows past the triangle limit are refused and vertices stop at it; and triangle bounding boxes share a budget of 64 passes over the raster. * address review: bound calculator token count while parsing * address review: count skipped calculator tokens toward MAX_CALC_OPS * address review: skip arrays and dictionaries in a calculator program without building them * address review: scalar tokens in a skipped compound are passed over without building them