reorganization
Some checks failed
CI / React UI Build (push) Successful in 11s
CI / Native Windows Build And Tests (push) Failing after 2m33s
CI / Windows Release Package (push) Has been skipped

This commit is contained in:
2026-05-22 15:06:26 +10:00
parent b7e7452567
commit 7bf5464fd2
43 changed files with 37 additions and 27 deletions

View File

@@ -36,6 +36,10 @@ set(VIDEO_SHADER_INCLUDE_DIRS
"${SRC_DIR}/shader" "${SRC_DIR}/shader"
"${SRC_DIR}/telemetry" "${SRC_DIR}/telemetry"
"${SRC_DIR}/video" "${SRC_DIR}/video"
"${SRC_DIR}/video/core"
"${SRC_DIR}/video/decklink"
"${SRC_DIR}/video/legacy"
"${SRC_DIR}/video/playout"
) )
function(video_shader_target_defaults target) function(video_shader_target_defaults target)
@@ -121,8 +125,8 @@ set(MSDF_ATLAS_GEN_README_FILE "${MSDF_ATLAS_GEN_ROOT}/README.md")
set(RENDER_CADENCE_APP_REQUIRED_FILES set(RENDER_CADENCE_APP_REQUIRED_FILES
"${SRC_DIR}/RenderCadenceCompositor.cpp" "${SRC_DIR}/RenderCadenceCompositor.cpp"
"${SRC_DIR}/video/DeckLinkAPI_i.c" "${SRC_DIR}/video/decklink/DeckLinkAPI_i.c"
"${SRC_DIR}/video/DeckLinkAPI_h.h" "${SRC_DIR}/video/decklink/DeckLinkAPI_h.h"
) )
video_shader_files_exist(RENDER_CADENCE_APP_MISSING_FILES ${RENDER_CADENCE_APP_REQUIRED_FILES}) video_shader_files_exist(RENDER_CADENCE_APP_MISSING_FILES ${RENDER_CADENCE_APP_REQUIRED_FILES})
@@ -138,8 +142,8 @@ else()
"${SRC_DIR}/*.h" "${SRC_DIR}/*.h"
) )
list(REMOVE_ITEM RENDER_CADENCE_APP_SOURCES list(REMOVE_ITEM RENDER_CADENCE_APP_SOURCES
"${SRC_DIR}/video/VideoBackend.cpp" "${SRC_DIR}/video/legacy/VideoBackend.cpp"
"${SRC_DIR}/video/VideoBackend.h" "${SRC_DIR}/video/legacy/VideoBackend.h"
) )
add_executable(RenderCadenceCompositor ${RENDER_CADENCE_APP_SOURCES}) add_executable(RenderCadenceCompositor ${RENDER_CADENCE_APP_SOURCES})

View File

@@ -23,7 +23,10 @@ Native app internals are grouped by boundary:
- `render/`: render thread, readback, runtime render scene, and shared-context shader program preparation. - `render/`: render thread, readback, runtime render scene, and shared-context shader program preparation.
- `runtime/`: shader catalog support, layer model, Slang build bridge, font atlas build, and runtime-state persistence. - `runtime/`: shader catalog support, layer model, Slang build bridge, font atlas build, and runtime-state persistence.
- `shader/`: shader package parsing and Slang compilation helpers. - `shader/`: shader package parsing and Slang compilation helpers.
- `video/`: DeckLink input/output edges, format helpers, and scheduling. - `video/core/`: backend-neutral video IO handoff contracts, formats, and output scheduling thread.
- `video/decklink/`: current DeckLink input/output backend.
- `video/playout/`: backend-adjacent playout policy, queues, frame pools, and scheduling helpers.
- `video/legacy/`: older backend pipeline pieces kept separate while the new edge model settles.
## Requirements ## Requirements
@@ -281,7 +284,7 @@ If `SLANG_ROOT` or `MSDF_ATLAS_GEN_ROOT` is not set, the workflow falls back to
- Audio. - Audio.
- Genlock. - Genlock.
- Logs. - Logs.
- Add more video I/O backends now that the DeckLink path is behind `videoio/`. - Add more video I/O backends now that the DeckLink path is isolated under `src/video/decklink/`.
- Support a separate sound shader `.slang` file in shader packages. (https://www.shadertoy.com/view/XsBXWt) - Support a separate sound shader `.slang` file in shader packages. (https://www.shadertoy.com/view/XsBXWt)
- Add WebView2 for an embedded native control surface. - Add WebView2 for an embedded native control surface.
- MSDF typography rasterisation - MSDF typography rasterisation

View File

@@ -25,7 +25,10 @@ Primary source areas:
- `src/render/thread`: render thread lifecycle, cadence loop, metrics, and runtime shader commit mailbox - `src/render/thread`: render thread lifecycle, cadence loop, metrics, and runtime shader commit mailbox
- `src/render/runtime`: render-thread-owned runtime shader scene, renderer, text texture upload cache, and shared-context shader prepare worker - `src/render/runtime`: render-thread-owned runtime shader scene, renderer, text texture upload cache, and shared-context shader prepare worker
- `src/frames`: system-memory frame exchange - `src/frames`: system-memory frame exchange
- `src/video`: generic video IO edge contracts, DeckLink input/output edges, and scheduling - `src/video/core`: generic video IO edge contracts, formats, and output scheduling thread
- `src/video/decklink`: current DeckLink input/output backend
- `src/video/playout`: backend-adjacent playout policy, queues, frame pools, and scheduling helpers
- `src/video/legacy`: older backend pipeline pieces kept separate from the current app path
- `src/runtime/catalog`: supported shader catalog and package filtering - `src/runtime/catalog`: supported shader catalog and package filtering
- `src/runtime/layers`: app-side runtime layer model, restore, reload, and render snapshot construction - `src/runtime/layers`: app-side runtime layer model, restore, reload, and render snapshot construction
- `src/runtime/shader`: background Slang build bridge and prepared shader artifact types - `src/runtime/shader`: background Slang build bridge and prepared shader artifact types

View File

@@ -5,8 +5,8 @@
#include "frames/SystemFrameExchange.h" #include "frames/SystemFrameExchange.h"
#include "logging/Logger.h" #include "logging/Logger.h"
#include "render/thread/RenderThread.h" #include "render/thread/RenderThread.h"
#include "video/DeckLinkInput.h" #include "video/decklink/DeckLinkInput.h"
#include "video/DeckLinkInputThread.h" #include "video/decklink/DeckLinkInputThread.h"
#include "DeckLinkDisplayMode.h" #include "DeckLinkDisplayMode.h"
#include "VideoIOFormat.h" #include "VideoIOFormat.h"

View File

@@ -4,8 +4,8 @@
#include "../logging/Logger.h" #include "../logging/Logger.h"
#include "../preview/PreviewConfig.h" #include "../preview/PreviewConfig.h"
#include "../telemetry/TelemetryHealthMonitor.h" #include "../telemetry/TelemetryHealthMonitor.h"
#include "../video/DeckLinkOutput.h" #include "DeckLinkOutput.h"
#include "../video/VideoOutputThread.h" #include "VideoOutputThread.h"
#include <chrono> #include <chrono>
#include <cstddef> #include <cstddef>

View File

@@ -7,9 +7,9 @@
#include "../control/RuntimeStateJson.h" #include "../control/RuntimeStateJson.h"
#include "../preview/PreviewWindowThread.h" #include "../preview/PreviewWindowThread.h"
#include "../telemetry/TelemetryHealthMonitor.h" #include "../telemetry/TelemetryHealthMonitor.h"
#include "../video/DeckLinkOutput.h" #include "DeckLinkOutput.h"
#include "../video/VideoIOEdges.h" #include "VideoIOEdges.h"
#include "../video/VideoOutputThread.h" #include "VideoOutputThread.h"
#include <chrono> #include <chrono>
#include <filesystem> #include <filesystem>

View File

@@ -20,13 +20,13 @@ add_video_shader_test(RenderCadenceCompositorTelemetryTests
add_video_shader_test(RenderCadenceCompositorFrameExchangeTests add_video_shader_test(RenderCadenceCompositorFrameExchangeTests
"${SRC_DIR}/frames/SystemFrameExchange.cpp" "${SRC_DIR}/frames/SystemFrameExchange.cpp"
"${SRC_DIR}/video/VideoIOFormat.cpp" "${SRC_DIR}/video/core/VideoIOFormat.cpp"
"${TEST_DIR}/RenderCadenceCompositorFrameExchangeTests.cpp" "${TEST_DIR}/RenderCadenceCompositorFrameExchangeTests.cpp"
) )
add_video_shader_test(RenderCadenceCompositorInputFrameMailboxTests add_video_shader_test(RenderCadenceCompositorInputFrameMailboxTests
"${SRC_DIR}/frames/InputFrameMailbox.cpp" "${SRC_DIR}/frames/InputFrameMailbox.cpp"
"${SRC_DIR}/video/VideoIOFormat.cpp" "${SRC_DIR}/video/core/VideoIOFormat.cpp"
"${TEST_DIR}/RenderCadenceCompositorInputFrameMailboxTests.cpp" "${TEST_DIR}/RenderCadenceCompositorInputFrameMailboxTests.cpp"
) )
@@ -128,49 +128,49 @@ add_video_shader_test(Std140BufferTests
) )
add_video_shader_test(VideoIOFormatTests add_video_shader_test(VideoIOFormatTests
"${SRC_DIR}/video/DeckLinkVideoIOFormat.cpp" "${SRC_DIR}/video/decklink/DeckLinkVideoIOFormat.cpp"
"${SRC_DIR}/video/VideoIOFormat.cpp" "${SRC_DIR}/video/core/VideoIOFormat.cpp"
"${TEST_DIR}/VideoIOFormatTests.cpp" "${TEST_DIR}/VideoIOFormatTests.cpp"
) )
add_video_shader_test(VideoPlayoutSchedulerTests add_video_shader_test(VideoPlayoutSchedulerTests
"${SRC_DIR}/video/VideoPlayoutScheduler.cpp" "${SRC_DIR}/video/playout/VideoPlayoutScheduler.cpp"
"${TEST_DIR}/VideoPlayoutSchedulerTests.cpp" "${TEST_DIR}/VideoPlayoutSchedulerTests.cpp"
) )
add_video_shader_test(VideoOutputThreadTests add_video_shader_test(VideoOutputThreadTests
"${SRC_DIR}/video/VideoIOFormat.cpp" "${SRC_DIR}/video/core/VideoIOFormat.cpp"
"${TEST_DIR}/VideoOutputThreadTests.cpp" "${TEST_DIR}/VideoOutputThreadTests.cpp"
) )
add_video_shader_test(OutputProductionControllerTests add_video_shader_test(OutputProductionControllerTests
"${SRC_DIR}/video/OutputProductionController.cpp" "${SRC_DIR}/video/playout/OutputProductionController.cpp"
"${TEST_DIR}/OutputProductionControllerTests.cpp" "${TEST_DIR}/OutputProductionControllerTests.cpp"
) )
add_video_shader_test(RenderOutputQueueTests add_video_shader_test(RenderOutputQueueTests
"${SRC_DIR}/video/RenderOutputQueue.cpp" "${SRC_DIR}/video/playout/RenderOutputQueue.cpp"
"${TEST_DIR}/RenderOutputQueueTests.cpp" "${TEST_DIR}/RenderOutputQueueTests.cpp"
) )
add_video_shader_test(RenderCadenceControllerTests add_video_shader_test(RenderCadenceControllerTests
"${SRC_DIR}/video/RenderCadenceController.cpp" "${SRC_DIR}/video/playout/RenderCadenceController.cpp"
"${TEST_DIR}/RenderCadenceControllerTests.cpp" "${TEST_DIR}/RenderCadenceControllerTests.cpp"
) )
add_video_shader_test(SystemOutputFramePoolTests add_video_shader_test(SystemOutputFramePoolTests
"${SRC_DIR}/video/SystemOutputFramePool.cpp" "${SRC_DIR}/video/playout/SystemOutputFramePool.cpp"
"${SRC_DIR}/video/VideoIOFormat.cpp" "${SRC_DIR}/video/core/VideoIOFormat.cpp"
"${TEST_DIR}/SystemOutputFramePoolTests.cpp" "${TEST_DIR}/SystemOutputFramePoolTests.cpp"
) )
add_video_shader_test(VideoBackendLifecycleTests add_video_shader_test(VideoBackendLifecycleTests
"${SRC_DIR}/video/VideoBackendLifecycle.cpp" "${SRC_DIR}/video/legacy/VideoBackendLifecycle.cpp"
"${TEST_DIR}/VideoBackendLifecycleTests.cpp" "${TEST_DIR}/VideoBackendLifecycleTests.cpp"
) )
add_video_shader_test(VideoIODeviceFakeTests add_video_shader_test(VideoIODeviceFakeTests
"${SRC_DIR}/video/VideoIOFormat.cpp" "${SRC_DIR}/video/core/VideoIOFormat.cpp"
"${TEST_DIR}/VideoIODeviceFakeTests.cpp" "${TEST_DIR}/VideoIODeviceFakeTests.cpp"
) )