Module preview

Source
Expand description

Preview panel: the rendered frame (letterboxed, black bars), a selection outline for the selected visual clip (drag to move = edits clip.x / clip.y at the playhead time via Animated::set_at, calling undo once at drag start), and the transport bar, centred under the video: go-start, prev cut, step back, play/pause, stop, step forward, next cut, go-end (all painted glyphs, NLE order) plus timecode / duration, In/Out buttons and the in/out times, a preview-quality selector (100 / 75 / 50 / 25 %) and a Movie mode toggle. In fullscreen mode only the video is drawn (no transport, no overlay): Esc / F11 leave it (app).

When PreviewCtx.tool is anything but Tool::Select, a click-drag over the video draws instead of moving the clip: a shape tool reports new_shape, the Draw tool records a timed stroke, and a mask tool edits the selected clip’s mask (reported through mask_edit); a Polygon/Path mask gets its vertices from the drag rect (an empty point list would hide the clip entirely). The Polygon shape tool is SVG-style instead: each click appends a vertex (the path is drawn live), a click back on a placed vertex (which is where a double-click’s second press lands) or Enter closes it into a shape, and re-selecting that shape with the Select tool puts a drag handle on every point.

Structs§

PreviewCtx
PreviewResponse
PreviewState
ToolDrag 🔒
A click-drag with a non-Select tool.

Constants§

QUALITIES
Preview render scales offered by the quality selector.

Functions§

constrain_drag 🔒
Shift locks the shape’s aspect (square / circle / 45°-stepped line); Alt anchors it on the press point instead of corner-to-corner, so it grows symmetrically from where the drag started. Returns the two corners draw_shape_preview (and the final shape) should use in place of the raw press/cursor, so the live preview and what actually gets created always agree.
draw_shape_preview 🔒
Outline of the shape a drag is creating: from is where the press landed, to is the cursor. Bounded shapes fill the rectangle between them; a line or arrow runs from one to the other, so it must not be handed a normalised rect (its corners would point the wrong way down two of the four diagonals).
letterbox 🔒
Largest aspect rect centred in area, edges snapped to whole physical pixels.
prerender_badge 🔒
Small “Pre-rendering NN %” / “Building proxy NN %” badge in the top-left of the video.
show
signed_min 🔒
Keep v’s direction while forcing at least min of length, so a zero-length drag still makes a visible shape without flipping which way it points.
tool_drag 🔒
Drag with a shape / draw / mask tool. Returns true when the tool consumed the gesture (so the clip must not be moved). Never panics without a selection: a shape or a stroke is reported regardless and the app decides what to create.
transport 🔒
video 🔒