FieldGlyphLayer
Draws the glyphs of the presenters `glyphs` and `setup` (field-presentation §FVE-12, §FVE-13, §FVG-9): arrows of a vector field, the principal axes of a tensor field, and the load arrows and the support symbols of a solve's setup.
| Inherits | Layer |
Declared in src/libs/libconstruct/construct/layers/FieldGlyphLayer.hpp.
Detailed description
One instanced draw per glyph shape and presenter. The glyph shapes are small static buffers made once. The instances are built on the thread pool (asset::buildGlyphData(), asset::buildSetupGlyphSet()) and come from the source: the asset store inline, the snapshot in a worker. A new pointer is the change signal, and until a new build lands the old glyphs stay on screen.
The glyphs move with the part: the vertex shader adds the motion at the anchor times the deform presenter's scale and phase, the values the tet layer uses (§FVE-3 rule 1). A field glyph takes the colormap and the range of the item's color presenter when that shows the same quantity, else the default map of its sign over its own range. Setup glyphs are an editing aid: a render, an export and a thumbnail turn them off with setSetupEnabled(), unless the field overlays of an image ask for them.
Every QRhi resource is created and uploaded in prepareResources(), outside the pass (§WFD-C1); renderPre() only records the draws. A backend with no instancing draws no glyph, and says so once.