Documentation
Docs/en/reference/video/fullscreen.md
Fullscreen Video Contract
Generated reference. Do not edit directly. Update
BuildTools/VideoInterface.json, then runpython BuildTools/docs_video.py --write.
| Index | Formats | Delivery | Decoding | Fullscreen | Embedded | Validation | Canonical JSON | Guide |
| Stable ID | Rule | Requirement | Why | Source |
|---|---|---|---|---|
video.fullscreen.play-api |
Fullscreen playback entry point | Use Game.PlayVideo(videoName, canInterrupt, enqueue) for the built-in fullscreen path. | The exported client method delegates to ClientEngine.PlayVideo. | Source/Scripting/ClientGlobalScriptMethods.cpp |
video.fullscreen.replace |
Replacement clears current queue | A non-enqueued request replaces the active clip and clears every queued request before attempting to load the new path. | PlayVideo resets _video and clears _videoQueue before resource lookup. | Source/Client/Client.cpp |
video.fullscreen.enqueue |
Queue while active | Set enqueue only to append behind an already active fullscreen clip; with no active clip, the request starts immediately and clears any stale queue. | The enqueue branch is conditional on _video, and ProcessVideo starts queued entries sequentially. | Source/Client/Client.cpp |
video.fullscreen.interrupt |
Input interruption | When canInterrupt is true, key-down, mouse-down, and touch input events stop the active clip; design project skip policy around this broad input set. | ProcessInputEvent stops the clip before normal input handling for the enumerated event classes. | Source/Client/Client.cpp |
video.fullscreen.music-pair |
Separate music pairing | Use video-path|music-path to stop current music and start a separate one-shot music resource alongside the video; additional separators are not a playlist. | PlayVideo splits the request, loads the first component, and uses only names[1] for AudioManager music. | Source/Client/Client.cpp |
video.fullscreen.music-stop |
Completion stops music | Expect fullscreen clip completion or interruption to stop the client’s current music group, including music not started by the video. | ProcessVideo unconditionally calls StopMusic when the active clip reports stopped. | Source/Client/Client.cpp |
video.fullscreen.draw-order |
Late fullscreen draw | Expect the built-in frame to draw after Game.OnRenderIface and stretch over the complete current render target without alpha blending. | MainLoop calls ProcessVideo after OnRenderIface, and DrawTexture without source/target regions fills the target. | Source/Client/Client.cpp, Source/Client/SpriteManager.cpp |
video.fullscreen.missing-file |
Missing fullscreen resource | Validate fullscreen resource existence before transitions; a missing file silently leaves no active clip after current playback and queue were cleared. | The void PlayVideo path returns when ReadFile fails and exposes no failure result. | Source/Client/Client.cpp |
video.fullscreen.status |
Playing status includes queued work | Interpret Game.IsVideoPlaying as active-or-queued state, not proof that a frame is currently visible. | ClientEngine reports true for an active playback or a non-empty queue. | Source/Client/Client.h |