Move movie runtime support to frontend
This commit is contained in:
@@ -118,9 +118,9 @@ S:\Game Hacking\Eushully\Himegari\ ← workspace root (three siblings)
|
|||||||
│ ├── Age.Engine/Persistence/ native S3SD/S4SD + S3RT codecs, shared payload/ReadTextDB,
|
│ ├── Age.Engine/Persistence/ native S3SD/S4SD + S3RT codecs, shared payload/ReadTextDB,
|
||||||
│ layout-3 numbered state/history/gfx, DAT/STH pair + BMP codec,
|
│ layout-3 numbered state/history/gfx, DAT/STH pair + BMP codec,
|
||||||
│ and profile-owned state
|
│ and profile-owned state
|
||||||
│ ├── Age.Engine.Frontend/ platform-neutral frontend diagnostics/options project: page
|
│ ├── Age.Engine.Frontend/ platform-neutral frontend support: diagnostics/options, page
|
||||||
│ locator, timeline/trace/step-limit diagnostics, VM/window launch
|
│ location, performance logging, movie decoder/runtime contracts,
|
||||||
│ options, and performance-frame logging
|
│ audio alignment, surface registry, and WAV sanitization
|
||||||
│ └── Age.Engine.Text.Windows/ optional exact Windows GDI gray-4 reference backend; kept
|
│ └── Age.Engine.Text.Windows/ optional exact Windows GDI gray-4 reference backend; kept
|
||||||
│ outside the platform-neutral VM/runtime core
|
│ outside the platform-neutral VM/runtime core
|
||||||
├── native/ authored native runtime boundaries
|
├── native/ authored native runtime boundaries
|
||||||
@@ -154,8 +154,10 @@ full-width text entry.
|
|||||||
Both `engine/AgeEngine.sln` and `godot/Himegari.sln` include the project; Godot and `Age.Engine.Tests` consume it
|
Both `engine/AgeEngine.sln` and `godot/Himegari.sln` include the project; Godot and `Age.Engine.Tests` consume it
|
||||||
through project references rather than compiling duplicate linked sources. The first owned cluster contains
|
through project references rather than compiling duplicate linked sources. The first owned cluster contains
|
||||||
`PageLocatorState`, `GodotTimelineLog`, `GodotTraceSink`, `StepLimitDiagnosticFormatter`, `GodotVmOptions`,
|
`PageLocatorState`, `GodotTimelineLog`, `GodotTraceSink`, `StepLimitDiagnosticFormatter`, `GodotVmOptions`,
|
||||||
`PerformanceFrameLog`, and `WindowLaunchOptions`. Movie runtime/decoder helpers remain under `godot/` until their
|
`PerformanceFrameLog`, and `WindowLaunchOptions`. It also owns the internal movie decoder boundary/runtime,
|
||||||
separate ownership slices.
|
audio-timeline alignment, movie-surface registry, and RIFF/WAVE sanitizer; only the `Himegari` and
|
||||||
|
`Age.Engine.Tests` assemblies receive explicit friend access to that internal API. FFmpeg interop and decoder
|
||||||
|
implementation remain under `godot/` until their separate ownership slice.
|
||||||
|
|
||||||
`godot/GodotAdvHost.cs` retains cross-domain host coordination. Its partial-class companion
|
`godot/GodotAdvHost.cs` retains cross-domain host coordination. Its partial-class companion
|
||||||
`godot/GodotAdvHost.AdvText.cs` owns live/retained ADV text, surface glyph rasterization and caching,
|
`godot/GodotAdvHost.AdvText.cs` owns live/retained ADV text, surface glyph rasterization and caching,
|
||||||
|
|||||||
@@ -834,6 +834,13 @@ do not mix mechanical moves with semantic changes.
|
|||||||
test source links without changing public types, namespaces, behavior, or export configuration. Both solution
|
test source links without changing public types, namespaces, behavior, or export configuration. Both solution
|
||||||
builds and runtime validation remain green.
|
builds and runtime validation remain green.
|
||||||
|
|
||||||
|
The second bounded build-graph slice moved the unchanged internal movie decoder boundary/runtime, audio
|
||||||
|
alignment policy, movie-surface registry, and RIFF/WAVE sanitizer from `godot/` into `Age.Engine.Frontend`.
|
||||||
|
Five more direct test source links are gone. Explicit friend access is limited to `Himegari` and
|
||||||
|
`Age.Engine.Tests`, so the move preserves the intentionally internal API instead of widening it; FFmpeg remains
|
||||||
|
in Godot while implementing the moved boundary through that friend access. Both solution builds and runtime
|
||||||
|
validation remain green.
|
||||||
|
|
||||||
5. **Close repository-policy and storage gaps.** Add an explicit project license, third-party notices and
|
5. **Close repository-policy and storage gaps.** Add an explicit project license, third-party notices and
|
||||||
checksums/provenance for committed binaries, consistent editor/build policy, a pinned .NET SDK, and a
|
checksums/provenance for committed binaries, consistent editor/build policy, a pinned .NET SDK, and a
|
||||||
CI entry point built on the same validation driver. Remove the empty workspace-root `.git` directory and
|
CI entry point built on the same validation driver. Remove the empty workspace-root `.git` directory and
|
||||||
@@ -1188,9 +1195,9 @@ layer's rendering diverges from ADV; save layout.
|
|||||||
|
|
||||||
## 8. Immediate next step
|
## 8. Immediate next step
|
||||||
Begin step 4 of the **codebase consolidation** maintenance slice: make the build graph express source ownership
|
Begin step 4 of the **codebase consolidation** maintenance slice: make the build graph express source ownership
|
||||||
without changing behavior. Move the platform-neutral movie abstractions and runtime support—decoder interfaces,
|
without changing behavior. Move `FfmpegMovieNative.cs` and `FfmpegMovieDecoder.cs` from `godot/` into
|
||||||
movie/audio runtime state, movie-surface registry, and RIFF sanitization—from `godot/` into
|
`Age.Engine.Frontend` next. Replace both test source links and the movie corpus gate's native-source link with
|
||||||
`Age.Engine.Frontend` next. Replace their test source links while preserving the intentionally internal API through
|
project references, granting narrowly scoped friend access to the corpus-gate assembly while preserving native
|
||||||
explicit friend-assembly access; leave FFmpeg interop/decoder ownership for the following slice.
|
ABI, decoder pacing, failure, and teardown behavior.
|
||||||
Concrete playthrough blockers may still preempt this bounded maintenance work; the consolidation effort does
|
Concrete playthrough blockers may still preempt this bounded maintenance work; the consolidation effort does
|
||||||
not replace Phase B gameplay validation or the open cross-platform gates.
|
not replace Phase B gameplay validation or the open cross-platform gates.
|
||||||
|
|||||||
4
engine/Age.Engine.Frontend/Properties/AssemblyInfo.cs
Normal file
4
engine/Age.Engine.Frontend/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
|
[assembly: InternalsVisibleTo("Age.Engine.Tests")]
|
||||||
|
[assembly: InternalsVisibleTo("Himegari")]
|
||||||
@@ -24,13 +24,8 @@
|
|||||||
<ProjectReference Include="..\Age.Engine\Age.Engine.csproj" />
|
<ProjectReference Include="..\Age.Engine\Age.Engine.csproj" />
|
||||||
<ProjectReference Include="..\Age.Engine.Frontend\Age.Engine.Frontend.csproj" />
|
<ProjectReference Include="..\Age.Engine.Frontend\Age.Engine.Frontend.csproj" />
|
||||||
<ProjectReference Include="..\Age.Engine.Text.Windows\Age.Engine.Text.Windows.csproj" />
|
<ProjectReference Include="..\Age.Engine.Text.Windows\Age.Engine.Text.Windows.csproj" />
|
||||||
<Compile Include="..\..\godot\IMovieDecoder.cs" Link="IMovieDecoder.cs" />
|
|
||||||
<Compile Include="..\..\godot\MovieRuntime.cs" Link="MovieRuntime.cs" />
|
|
||||||
<Compile Include="..\..\godot\MovieAudioTimeline.cs" Link="MovieAudioTimeline.cs" />
|
|
||||||
<Compile Include="..\..\godot\FfmpegMovieNative.cs" Link="FfmpegMovieNative.cs" />
|
<Compile Include="..\..\godot\FfmpegMovieNative.cs" Link="FfmpegMovieNative.cs" />
|
||||||
<Compile Include="..\..\godot\FfmpegMovieDecoder.cs" Link="FfmpegMovieDecoder.cs" />
|
<Compile Include="..\..\godot\FfmpegMovieDecoder.cs" Link="FfmpegMovieDecoder.cs" />
|
||||||
<Compile Include="..\..\godot\MovieSurfaceRegistry.cs" Link="MovieSurfaceRegistry.cs" />
|
|
||||||
<Compile Include="..\..\godot\RiffWaveSanitizer.cs" Link="RiffWaveSanitizer.cs" />
|
|
||||||
<Compile Include="..\..\tools\movie-corpus-gate\MovieCorpusGate.cs" Link="MovieCorpusGate.cs" />
|
<Compile Include="..\..\tools\movie-corpus-gate\MovieCorpusGate.cs" Link="MovieCorpusGate.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user