Skip to content

Navigation Menu

Sign in
Sign up

Precomp Phase G: timeline tabs, media bin section, stage preview #107

Open
Labels
enhancementNew feature or request tier:coreLives in core (GPLv3, in-repo); always free, fully featured

Description

Phase G of the Precomps epic (#100, ADR-0029). Depends on Phase F (#106). Final v1 phase.

Scope

  1. Timeline tabs: tab strip on the timeline panel host (src/ui/TimelineWindow.cpp wraps a single TimelineWidget); per-tab state = {Timeline*, selection}. TimelineWidget::setTimeline() exists (TimelineWidget.hpp:99) — audit cached per-timeline widget state for re-point safety; fallback = one widget instance per tab. Main-timeline tab is not closable. Sections/cues UI hidden in definition tabs (root-only concept).
  2. Open paths: double-click a precomp instance (TimelineWidgetInput.cpp double-click handling) opens its definition's tab; OpenPrecompTabCommand{definitionId} for scripts/UI.
  3. MediaBin precomp section: list definitions (name, canvas, duration, instance count); "New Precomp..." creation flow (name + canvas + fps + duration → CreatePrecompDefinitionCommand); drag source with payload PRECOMP_DEF carrying the definition id (pattern: MediaBinWindow.cpp:668-678); timeline accept branch alongside MEDIA_FILE/LAYER_KIND (TimelineWidgetRender.cpp:749-800) + drop callback wired in Engine (Engine.cpp:488-549 pattern) → CreatePrecompInstanceCommand. LayersWindow palette row for Kind::Precomp.
  4. Stage preview: while a definition tab is active, Engine maintains one hidden preview instance (identity mapping against the tab Timeline's edit playhead, speed=1, no wrap, excluded from root UI and screen routing) flowing through the standard snapshot → PASS 1.6 path; stage view displays its compose target via the EditorReadGate-gated read (ADR-0014 D3D12Renderer m_composeTargets: show-thread emplace_back/resize races editor readers #75 /Video-texture slot free races editor ImGui frames holding the slot's SRV handle (same hazard class as #75) #89 protocol). De-scope fallback (pre-approved in ADR): if the gated read fights back, ship tabs-for-editing with preview via instances on the main timeline, and file the preview instance as a follow-up.
  5. Compose soft-cap warning: editor-side toast/log when projected slot demand (screens + generatives + ×ばつeffect-layers + instances) ≥ 48 of 64.

Tests

  • scripts/integration/precomp_tab_open.json: OpenPrecompTabAddClipToPrecomp → close tab → assert instance resync (shadow count + render hash change on the main timeline).
  • Preview: headless CaptureHash of the preview instance's RT if the gated read allows (stretch); otherwise a manual verification checklist posted on this issue before close.

Acceptance

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request tier:coreLives in core (GPLv3, in-repo); always free, fully featured

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      AltStyle によって変換されたページ (->オリジナル) /