The ImGui developer-tools stack (AcDream.UI.ImGui), UI Studio (src/AcDream.App/Studio), and the DevToolsFramePresenter/ SettingsDevToolsCompositionPhase ImGui composition machinery are removed. Vulkan never composed a DevTools frontend (DevToolsEnabled already forced false whenever the backend was Vulkan); this commit makes that permanent by deleting the only implementation rather than leaving a dead branch behind. What moved: Studio/SampleData.cs is a live production dependency (InteractionRetainedUiComposition's character-sheet fallback, plus three UI.Layout test files) - git mv'd to src/AcDream.App/UI/Layout/SampleData.cs, namespace AcDream.App.UI.Layout, and trimmed to the SampleCharacter API that is actually still called (BuildObjectTable/AddItem/AddEquipped/the item-guid and icon constants had zero callers left once the Studio fixture provider that used them was deleted). What survives as backend-neutral seams, per the tests that still exercise them: IDevToolsFrameLifecycle (moved into RenderFramePreparationController.cs, now always bound to null), IFramebufferDevToolsTarget/FramebufferDevToolsBinding in FramebufferResizeController.cs (its concrete DevToolsFramebufferTarget adapter is deleted), and IDevToolsGameplayCommands in GameplayInputCommandController.cs (DevToolsGameplayCommands becomes a documented no-op instead of forwarding to the deleted presenter). A follow-up re-homes Settings/Debug onto the retained UI through IPanelRenderer; until then keybind remapping falls back to editing keybinds.json. DevToolsEnabled is now `private const bool DevToolsEnabled = false`. RuntimeOptions.DevTools is unchanged and still reaches VulkanGraphicsContext for the optional debug-utils extensions; Program.cs now logs one line when ACDREAM_DEVTOOLS=1 explaining that the ImGui UI is gone and the flag is Vulkan-only now. Removed: AcDream.UI.ImGui (project + ImGui.NET/Silk.NET.OpenGL.Extensions.ImGui package refs), src/AcDream.App/Studio (minus SampleData.cs), DevToolsFramePresenter.cs and everything only it constructed (ISettingsDevToolsCompositionFactory, RetailSettingsDevToolsCompositionFactory, DevToolsCompositionOwner, IGameWindowSettingsDevToolsPublication, SettingsDevToolsOptionalDependencies, the "developer tools" shutdown-ledger stage and its DevTools-typed fields on IngressShutdownRoots/ RenderShutdownRoots), the ui-studio Program.cs verb, and the cimgui native manifest entries in GraphicalHostPlatformServices. GameWindow.cs's DevTools composition branch, its _vitalsVm/_debugVm/_devToolsComposition/ _devToolsFramePresenter/_devToolsCommandBus fields, and every settingsDevTools .DevTools?.* access across FrameRootComposition.cs/SessionPlayerComposition.cs are gone with it. Build green; complete Release solution suite 8,830 / 5 skips (App Tests 4,097/3 skips run standalone - one #250-family zero-allocation test flakes under the full parallel `dotnet test AcDream.slnx` run, a pre-existing, documented class unrelated to this change). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
118 lines
6.7 KiB
XML
118 lines
6.7 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<PropertyGroup>
|
|
<OutputType>Exe</OutputType>
|
|
<TargetFramework>net10.0</TargetFramework>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<Nullable>enable</Nullable>
|
|
<LangVersion>latest</LangVersion>
|
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
|
<RootNamespace>AcDream.App</RootNamespace>
|
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<InternalsVisibleTo Include="AcDream.Core.Tests" />
|
|
<InternalsVisibleTo Include="AcDream.App.Tests" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<!-- T3: extracted GL infra (ManagedGLUniformBuffer, OpenGLGraphicsDevice) directly
|
|
implement IUniformBuffer from Chorizite.Core; NuGet PackageReferences are not
|
|
forwarded from ProjectReferences so we must declare it explicitly here. -->
|
|
<PackageReference Include="Chorizite.Core" Version="0.0.18" />
|
|
<!-- Phase O-T7: BCnEncoder.Net.ImageSharp + SixLabors.ImageSharp were previously
|
|
transitive via the WorldBuilder project reference. Now direct deps of
|
|
ObjectMeshManager.cs (extracted in T2). -->
|
|
<PackageReference Include="BCnEncoder.Net.ImageSharp" Version="1.1.2" />
|
|
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.12" />
|
|
<!-- Slice F: contained render-projection storage. Arch types are confined to
|
|
Rendering/Scene/Arch and never cross an acdream-owned interface. -->
|
|
<PackageReference Include="Arch" Version="2.1.0" />
|
|
<PackageReference Include="Silk.NET.OpenGL" Version="2.23.0" />
|
|
<PackageReference Include="Silk.NET.OpenGL.Extensions.ARB" Version="2.23.0" />
|
|
<!-- Campaign V slice V5: dark Vulkan bring-up. Pinned to the same 2.23.0 as
|
|
the rest of the Silk family so the shared Silk.NET.Core does not fork. -->
|
|
<PackageReference Include="Silk.NET.Vulkan" Version="2.23.0" />
|
|
<PackageReference Include="Silk.NET.Vulkan.Extensions.KHR" Version="2.23.0" />
|
|
<!-- Campaign V slice V6: VK_EXT_debug_utils object naming and command labels.
|
|
Optional at runtime (VulkanDebugNames.Disabled when absent), but the
|
|
entry points have to be loadable for the dev-tools path to name anything. -->
|
|
<PackageReference Include="Silk.NET.Vulkan.Extensions.EXT" Version="2.23.0" />
|
|
<PackageReference Include="Silk.NET.Windowing" Version="2.23.0" />
|
|
<PackageReference Include="Silk.NET.Input" Version="2.23.0" />
|
|
<PackageReference Include="Silk.NET.OpenAL" Version="2.23.0" />
|
|
<PackageReference Include="Silk.NET.OpenAL.Extensions.Creative" Version="2.23.0" />
|
|
<PackageReference Include="Silk.NET.OpenAL.Extensions.EXT" Version="2.23.0" />
|
|
<PackageReference Include="Silk.NET.OpenAL.Soft.Native" Version="1.23.1" />
|
|
<PackageReference Include="Serilog" Version="4.0.2" />
|
|
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
|
|
<PackageReference Include="StbTrueTypeSharp" Version="1.26.12" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\AcDream.Runtime\AcDream.Runtime.csproj" />
|
|
<ProjectReference Include="..\AcDream.Core\AcDream.Core.csproj" />
|
|
<ProjectReference Include="..\AcDream.Core.Net\AcDream.Core.Net.csproj" />
|
|
<ProjectReference Include="..\AcDream.Content\AcDream.Content.csproj" />
|
|
<ProjectReference Include="..\AcDream.UI.Abstractions\AcDream.UI.Abstractions.csproj" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<None Update="Rendering\Shaders\*.*">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
<!-- Campaign V slice V6c: the committed SPIR-V the Vulkan backend loads at
|
|
startup, plus the manifest the freshness test re-hashes. Regenerated by
|
|
tools/compile-shaders.ps1; never compiled at runtime (plan §4.6). -->
|
|
<None Update="Rendering\Shaders\spv\*.*">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
<!-- Phase D.2b: KSML-style panel markup assets (vitals.xml etc.) ship
|
|
next to the binary so MarkupDocument.Build can load them at runtime. -->
|
|
<None Include="UI\assets\**\*.xml">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<!-- Build the smoke plugin first and copy it into plugins/AcDream.Plugins.Smoke/ -->
|
|
<ProjectReference Include="..\AcDream.Plugins.Smoke\AcDream.Plugins.Smoke.csproj">
|
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
|
<SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
<Target
|
|
Name="CopySmokePluginToBuildOutput"
|
|
AfterTargets="Build"
|
|
Condition="'$(IsCrossTargetingBuild)' != 'true'">
|
|
<PropertyGroup>
|
|
<_SmokePluginSourceDir>$(MSBuildProjectDirectory)/../AcDream.Plugins.Smoke/bin/$(Configuration)/$(TargetFramework)</_SmokePluginSourceDir>
|
|
<_SmokePluginSourceDir Condition="'$(RuntimeIdentifier)' != ''">$(_SmokePluginSourceDir)/$(RuntimeIdentifier)</_SmokePluginSourceDir>
|
|
<_SmokePluginDestDir>$(OutputPath)plugins/AcDream.Plugins.Smoke</_SmokePluginDestDir>
|
|
</PropertyGroup>
|
|
<MakeDir Directories="$(_SmokePluginDestDir)" />
|
|
<Copy
|
|
SourceFiles="$(_SmokePluginSourceDir)/AcDream.Plugins.Smoke.dll"
|
|
DestinationFolder="$(_SmokePluginDestDir)"
|
|
SkipUnchangedFiles="true" />
|
|
<WriteLinesToFile
|
|
File="$(_SmokePluginDestDir)/plugin.json"
|
|
Overwrite="true"
|
|
Lines="{ "id": "acdream.smoke", "displayName": "Smoke Plugin", "version": "0.1.0", "entryDll": "AcDream.Plugins.Smoke.dll", "apiVersion": 1 }" />
|
|
</Target>
|
|
|
|
<Target
|
|
Name="CopySmokePluginToPublishOutput"
|
|
AfterTargets="Publish"
|
|
Condition="'$(IsCrossTargetingBuild)' != 'true'">
|
|
<PropertyGroup>
|
|
<_SmokePluginPublishSourceDir>$(MSBuildProjectDirectory)/../AcDream.Plugins.Smoke/bin/$(Configuration)/$(TargetFramework)</_SmokePluginPublishSourceDir>
|
|
<_SmokePluginPublishSourceDir Condition="'$(RuntimeIdentifier)' != ''">$(_SmokePluginPublishSourceDir)/$(RuntimeIdentifier)</_SmokePluginPublishSourceDir>
|
|
<_SmokePluginPublishDestDir>$(PublishDir)plugins/AcDream.Plugins.Smoke</_SmokePluginPublishDestDir>
|
|
</PropertyGroup>
|
|
<MakeDir Directories="$(_SmokePluginPublishDestDir)" />
|
|
<Copy
|
|
SourceFiles="$(_SmokePluginPublishSourceDir)/AcDream.Plugins.Smoke.dll"
|
|
DestinationFolder="$(_SmokePluginPublishDestDir)"
|
|
SkipUnchangedFiles="true" />
|
|
<WriteLinesToFile
|
|
File="$(_SmokePluginPublishDestDir)/plugin.json"
|
|
Overwrite="true"
|
|
Lines="{ "id": "acdream.smoke", "displayName": "Smoke Plugin", "version": "0.1.0", "entryDll": "AcDream.Plugins.Smoke.dll", "apiVersion": 1 }" />
|
|
</Target>
|
|
</Project>
|