Videos: recording the whole editor from the main menu
- New section "Recording the editor": the menu entry, no options, the pointer drawn in, the red dot left out, no second drawing. - Development: 2039 editor checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent
440c0e4428
commit
796bf8d460
2 files changed
+27
-2
No files matched your search
+1
-1
@@ -21,7 +21,7 @@ php tests/php/releases.test.php # the release stor
|
||||
php tests/php/files.test.php # uploaded files in a folder per account (#344), the same way
|
||||
php tests/php/videos.test.php # the video store, its queue and the worker (#402), with the
|
||||
# real ffmpeg: the CI image and game-maker-video have it
|
||||
node tools/seed-e2e.mjs && node tools/e2e.mjs # 2038 editor checks, screenshots in /tmp/gm-e2e-*.png
|
||||
node tools/seed-e2e.mjs && node tools/e2e.mjs # 2039 editor checks, screenshots in /tmp/gm-e2e-*.png
|
||||
GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step
|
||||
./e2e.sh start [GM_STEPS] # the same run detached, see below
|
||||
./e2e.sh status # live progress, or the last run's result
|
||||
|
||||
+26
-1
@@ -197,7 +197,32 @@ the editor itself (`src/core/recording/matroska.ts`) in clusters as the frames c
|
||||
frame rate and the colour (BT.709) in its head, so nothing has to guess them. The rules (size,
|
||||
codec level, which frames are taken, where the picture goes in a frame) are plain functions in
|
||||
`src/core/recording/recording.ts`, the browser's side is `src/viewport/GameRecorder.ts`, and
|
||||
`src/viewport/PictureReader.ts` reads the frames back through pixel buffers with a fence.
|
||||
`src/viewport/PictureReader.ts` reads the frames back through pixel buffers with a fence. The
|
||||
encoders, the sound and the file are `src/viewport/RecordingTake.ts`, which the editor recording
|
||||
below shares.
|
||||
|
||||
## Recording the editor
|
||||
|
||||
**Start recording** in the main menu (top left) records the whole editor, for a tutorial or a bug
|
||||
report. While it records, the entry reads **Stop recording**, and a red dot with the time stands
|
||||
beside the menu button.
|
||||
|
||||
- **No options:** the name is `Recording <date> <time>`, the size is the editor's canvas in device
|
||||
pixels (an odd row or column is cut off), 60 fps. The sound is the master, as for the game view.
|
||||
- **The mouse pointer is drawn in.** The system draws it over the page, so it is not in the canvas;
|
||||
the recording draws its own in the shape the editor shows (arrow, hand, resize arrows, I-beam,
|
||||
crosshair).
|
||||
- **The red dot is not in it.** It is drawn onto the screen after the frame is taken, and the room
|
||||
it needs beside the menu stays empty in the recording.
|
||||
- **Everything else is**, the menu that stops it included: cut the end off afterwards if it is in
|
||||
the way.
|
||||
- **It costs no second drawing.** The frame is copied from the canvas right after the editor drew
|
||||
it. An idle editor draws nothing, and the recording repeats its last picture.
|
||||
- **A resized window** is fitted into the size the recording started with, centred, the rest dark.
|
||||
- It runs on through Play and Stop, beside a recording of the game view if a game starts one.
|
||||
Saving is the same: up to the server, then a video asset once the editor is not playing.
|
||||
|
||||
The code is `src/editor/EditorRecorder.ts`, the pointer shapes are `src/core/recording/cursors.ts`.
|
||||
|
||||
## The worker
|
||||
|
||||
|
||||
Reference in new issue
Block a user