TextPaint
A resolved paint — flat colour, gradient, or texture — shared by every paint consumer. Built per application from a parameter token (Resolve); it is a runtime value, never a serialized field on a modifier. Invariant: projection fields carry only resolved values — never Inherit/NaN — so emitters and the shader contract read them without sentinel checks.
public static TextPaint Solid()Creates a runtime solid paint with the engine-default projection.
public static TextPaint Resolve()Resolves one paint token: a swatch name (via swatches) carrying the paint appearance (kind/colour/gradient/texture) and its full projection (the base layer of the override hierarchy — see ApplyProjection), or a colour literal (#RRGGBBAA / named) → solid with engine-default projection. The name is tried first unless the token is an explicit # hex; an unresolved token falls back to opaque white. Touches no Unity APIs (worker-thread safe); texture pixel dimensions are filled separately on the main thread.
The single projection-override resolve: layers a modifier's serialized fields and the remaining per-range tokens of reader over the values this paint already carries from its swatch (or the engine defaults for a colour literal). Per field, strongest wins: tag/default-parameter token → modifier field → swatch. Inherit enum members and NaN floats/axes mean "no value at that layer"; a non-positive resolved scale normalizes to 1.
Applies already-resolved non-mapping projection overrides under the same sentinel contract as ApplyProjection — for consumers whose mapping vocabulary differs from PaintMapping and is resolved separately.
public Color32 colorResolved solid colour or tint multiplied with the sampled source.
public Texture2D textureResolved texture when kind is Texture.
public PaintMapping mappingText bounds used as the projection frame.
public Vector2 offsetResolved normalized projection-origin offset.
