effectcraft/crates/engine/src/commands
bflatastic 89e075d1b1 Shapes: Tools bar Tool Creates Shape / Mask and Fill / Stroke Options (#227)
The Tools bar had Fill and Stroke swatches and a Stroke Width, kept in
the interface only, so agents couldn't set them and new shapes could
only be a solid fill with a solid stroke. As in After Effects:

- With a shape layer selected and a shape tool or the Pen active, Tool
  Creates Shape / Tool Creates Mask choose whether drawing adds shapes
  to the layer or masks on it (Fill and Stroke hide while drawing
  masks).
- Clicking the word "Fill" or "Stroke" opens Fill Options / Stroke
  Options: None, Solid Color, Linear Gradient or Radial Gradient, the
  blend mode and the opacity. The swatches show the kind; Alt-click
  steps through the kinds.
- New shapes and Pen paths are painted with them: a Gradient Fill or
  Gradient Stroke across the shape for the gradient kinds.

The options are engine state (EditorState.shape_tool) set with the new
shape.toolOptions command; shape.newShape and shape.newPath use them
unless given paint parameters (which now include fillType, fillBlend,
fillOpacity and their stroke twins; layer.newShape takes them too). A
Pen path without paint parameters now takes the Tools bar's stroke
(none by default) instead of a fixed 2 px white one. layer.addMask also
draws rounded rectangle, polygon and star masks, so every shape tool
makes a mask on a selected footage or solid layer (rounded rectangles,
polygons and stars made a new shape layer).

Test: shape_tool_options_paint_new_shapes,
masks_of_every_shape_tool_kind,
tool_creates_mask_draws_a_mask_on_the_selected_shape_layer,
fill_options_paint_the_next_shape.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 13:03:38 +07:00
..
align.rs M13.8: Preview panel shortcuts and Align panel commands 2026-10-03 07:38:46 -04:00
align_data.rs M13.6: Lumetri Scopes, Footage, Media Browser, Metadata, Progress and Content-Aware Fill panels; Content-Aware Fill, Scene Edit Detection, Auto-trace, Align Video to Data 2026-10-03 03:12:36 -04:00
anim.rs M5.15: J / K and Select All Keyframes use what the Timeline shows; Graph Editor Auto-Select Graph Type 2026-10-05 10:36:55 +07:00
anim_tools.rs ANM-6, CMP-5, CMP-3: Wiggler/Smoother/Motion Sketch, marker dialog + timeline markers, pre-compose options + comp navigator 2026-10-02 10:47:02 -04:00
animation.rs Timeline: reveal shortcuts leave unselected layers alone (#160) 2026-10-07 13:02:01 +07:00
app_more.rs M3.14: project files name the version that wrote them, never save unreadable, keep their format 2026-10-05 00:08:07 +07:00
autotrace.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
batch.rs M13.15: qa scenarios 1-4 (kinetic type, shape logo, compositing, tracking) and fixes 2026-10-03 12:09:41 -04:00
camera_cmds.rs M13.3: face tracking methods, Face Track Points / Measurements, camera lens distortion, docs 2026-10-03 04:36:12 -04:00
comp.rs Comp: comp.new / comp.settings no longer advertise an `advanced3D` key (#177) 2026-10-07 15:48:17 +07:00
comp_more.rs M10.2: Render Queue completeness (render settings, output module, templates, logs, overflow, notify) 2026-10-03 04:55:31 -04:00
content_fill.rs M13.30: Content-Aware Fill in a job worker on its GPU 2026-10-04 03:15:54 -04:00
create.rs M13.12: Create Shapes from Vector Layer keeps images as parented footage layers in paint order 2026-10-03 09:23:29 -04:00
edit.rs Shapes: Duplicate duplicates the selected shape items, not the layer (#227) 2026-10-08 13:03:38 +07:00
effect.rs Shapes: Copy, Cut and Paste shape items between shape layers (#227) 2026-10-08 13:03:38 +07:00
essential.rs Merge main into M13.15 2026-10-03 13:00:33 -04:00
expr_tools.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
file.rs Viewer: drop Project items, files and effects onto the comp (#85, #88) 2026-10-07 02:31:13 +07:00
file_more.rs Scripting: script.run reports .jsxbin scripts as unsupported (#176) 2026-10-07 15:48:17 +07:00
focus.rs M13.5: camera iris bokeh depth of field and focus-link commands 2026-10-02 23:35:03 -04:00
footage_panel.rs M13.6: Lumetri Scopes, Footage, Media Browser, Metadata, Progress and Content-Aware Fill panels; Content-Aware Fill, Scene Edit Detection, Auto-trace, Align Video to Data 2026-10-03 03:12:36 -04:00
frame_export.rs M13.7: Save Frame As Photoshop Layers / ProEXR, Watch Folder, Vanishing Point (disabled), Create Nulls From Paths, VR Comp Editor, Help tutorials 2026-10-03 07:55:04 -04:00
frontend.rs M13.34: audio scrubbing (Ctrl/Cmd-drag the current time) 2026-10-05 15:18:54 +07:00
help.rs Rename PrintCraft to PdfCraft (storytold/pdfcraft) (#207) 2026-10-07 15:37:26 -04:00
key_labels.rs M13.5: timeline/project column scrolling, keyframe label groups 2026-10-02 23:48:33 -04:00
key_transform.rs M5.11: Graph Editor: drags move every selected key, Shift keeps an axis, Ctrl / Ctrl+Alt clicks; drags and the transform box never merge or lose keys 2026-10-05 07:52:20 +07:00
keys_more.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
layer.rs Shapes: Tools bar Tool Creates Shape / Mask and Fill / Stroke Options (#227) 2026-10-08 13:03:38 +07:00
layer_menu.rs M3.11: layer commands respect locks, keep children in place on delete, arrange step by step, keep depth and separated dimensions, keep links on duplicate/paste 2026-10-04 23:33:54 +07:00
layer_time.rs ANM-5: sampleImage, data footage (JSON/CSV/TSV) with footage().sourceData, thisProject, error list, Expression Language menu 2026-10-02 22:58:04 -04:00
link.rs M14.5: wire the remaining settings; keyframe assistants and labels; AE menu entries 2026-10-03 02:45:44 -04:00
liquify.rs M9.11: Blur & Sharpen and Distort effects (CC Radial Blur, Camera-Shake Deblur, CC Flo Motion, Liquify, Rolling Shutter Repair) 2026-10-02 21:08:04 -04:00
lottie.rs M11.4: Lottie export/import 2026-10-02 08:56:03 -04:00
markers.rs M13.33: nested comp markers on the precomp layer bar 2026-10-05 15:12:06 +07:00
mask.rs Merge main into M14.5 (settings and menus) 2026-10-03 03:11:45 -04:00
mask_interp.rs M13.36: face tracking trained model — MediaPipe Face Landmarker on a pure-Rust TFLite interpreter 2026-10-05 20:39:45 +07:00
mod.rs Shapes: drawing with a shape tool adds to the selected shape layer (#227) 2026-10-08 13:03:38 +07:00
model3d.rs Viewer: drop Project items, files and effects onto the comp (#85, #88) 2026-10-07 02:31:13 +07:00
paint.rs M13.1/M13.2: paint (Brush, Clone Stamp, Eraser) and puppet pins 2026-10-02 09:12:10 -04:00
panels_cmds.rs Viewer: drop Project items, files and effects onto the comp (#85, #88) 2026-10-07 02:31:13 +07:00
path_nulls.rs M13.15: rig puppet pins to nulls — Points Follow Nulls / Nulls Follow Points (Window ▸ Create Nulls From Paths, paths.* {pins?}) take selected pins, named pins, or every pin of a layer with no path: a null per Position / Advanced pin drives its Position (fromComp of the null's anchor, so parented nulls rig limbs), or rides on it (toComp of the pin's Position) to carry other layers; one undo step 2026-10-04 00:19:25 +07:00
paths.rs M3.13: menu bar: Group/Ungroup Shapes in the Layer menu, Window ▸ Learn, flowchart shortcuts, Center In View shortcut, Reveal in Explorer on Windows 2026-10-04 23:58:00 +07:00
project_items.rs M3.16: deleting Project items that compositions use asks first 2026-10-06 11:35:57 +07:00
prop.rs Masks and Project panel: selecting a mask selects its points; linked Mask Feather; selection box (#203) 2026-10-07 22:13:19 +00:00
prop_groups.rs Shapes: Duplicate duplicates the selected shape items, not the layer (#227) 2026-10-08 13:03:38 +07:00
proxy.rs M10.2: Render Queue completeness (render settings, output module, templates, logs, overflow, notify) 2026-10-03 04:55:31 -04:00
puppet.rs Puppet: dragging pins keeps the layer under the Puppet cached (#212) 2026-10-07 22:13:19 +00:00
query.rs M4.9: Preserve frame rate when nested or in render queue, Preserve resolution when nested 2026-10-05 01:33:14 +07:00
render_queue.rs Export: AV1 WebM refuses an explicit RGB + Alpha request (#166) 2026-10-07 15:48:17 +07:00
rig3d.rs M7.7: camera/light rigs and Advanced 3D motion blur, blend modes, track mattes 2026-10-03 00:27:47 -04:00
roto_cmds.rs M6.7: refine edge + freeze + UI 2026-10-02 22:27:22 -04:00
scene_detect.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
scripts.rs M13.7: ScriptUI resource strings, onDraw graphics, live onChanging, Socket 2026-10-03 05:49:05 -04:00
settings.rs M15.2: web app depth (WEB-1): browser storage, Web Audio, worker renders, WebGPU viewer, PWA 2026-10-02 23:42:00 -04:00
shape_stroke.rs Shapes: Copy, Cut and Paste shape items between shape layers (#227) 2026-10-08 13:03:38 +07:00
shape_tool.rs Shapes: Tools bar Tool Creates Shape / Mask and Fill / Stroke Options (#227) 2026-10-08 13:03:38 +07:00
stubs.rs Merge main into M13.6 panels and content tools (Footage window label on the real panel; no stubs left) 2026-10-03 03:43:46 -04:00
styles.rs M9.4: layer styles render + commands 2026-10-02 00:00:00 -04:00
text_anim.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
text_edit.rs G2: font menus list the installed fonts 2026-10-06 15:14:55 +00:00
three_d.rs M7.7: viewer and colour completion 2026-10-03 02:25:56 -04:00
time.rs M5.15: J / K and Select All Keyframes use what the Timeline shows; Graph Editor Auto-Select Graph Type 2026-10-05 10:36:55 +07:00
timeline.rs Merge branch 'main' into worktree-agent-a9fea98fe9839069d (filmcraft rev 2c5ba7a: AAF and OMF interchange) 2026-10-04 00:45:00 -04:00
track.rs Never crash: project crate without expect() 2026-10-04 12:58:51 -04:00
view.rs M13.5: extended viewer (custom 3D views / Draft 3D render the pasteboard around the comp frame; view.extendedViewer) 2026-10-03 05:14:12 -04:00
viewer_cmds.rs Shapes: Tools bar Tool Creates Shape / Mask and Fill / Stroke Options (#227) 2026-10-08 13:03:38 +07:00
vpe.rs M13.7: Save Frame As Photoshop Layers / ProEXR, Watch Folder, Vanishing Point (disabled), Create Nulls From Paths, VR Comp Editor, Help tutorials 2026-10-03 07:55:04 -04:00
vr_editor.rs M13.7: Save Frame As Photoshop Layers / ProEXR, Watch Folder, Vanishing Point (disabled), Create Nulls From Paths, VR Comp Editor, Help tutorials 2026-10-03 07:55:04 -04:00
warp_cmds.rs M13.32: web main-thread stall: Warp Stabilizer plans solved in job workers 2026-10-04 03:40:46 -04:00
watch_folder.rs M13.15: qa project lifecycle; Collect Files makes its folder; agents cookbook 2026-10-03 12:56:41 -04:00