From fc0a801e8829b623d62137a3f7cbdec38c6d555a Mon Sep 17 00:00:00 2001 From: cashmere Date: Sun, 26 Jul 2026 21:06:33 +0200 Subject: feat: freeze frame at playhead Enable the timeline toolbar freeze-frame button: capture the composited canvas as PNG, add it as an image media asset, split the video element at the playhead, shift the right part by the freeze duration, and insert a 3-second image element in the gap. Adds RendererManager.captureFrame(), reused by createSnapshot(). Also adds the Nix devshell (flake.nix/flake.lock: bun + nodejs) and AGENTS.md repository guidelines. --- flake.nix | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 flake.nix (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..2cf1c096 --- /dev/null +++ b/flake.nix @@ -0,0 +1,32 @@ +{ + description = "OpenCut Classic development shell"; + + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + + outputs = + { nixpkgs, ... }: + let + systems = [ + "x86_64-linux" + "aarch64-linux" + "aarch64-darwin" + ]; + forEachSystem = nixpkgs.lib.genAttrs systems; + in + { + devShells = forEachSystem ( + system: + let + pkgs = import nixpkgs { inherit system; }; + in + { + default = pkgs.mkShell { + packages = with pkgs; [ + bun + nodejs + ]; + }; + } + ); + }; +} -- cgit v1.3.1