refactor(app): compose settings and developer tools

This commit is contained in:
Erik 2026-07-22 16:11:34 +02:00
parent 60a1698ce7
commit cd7b519f78
24 changed files with 2073 additions and 333 deletions

View file

@ -17,7 +17,9 @@ namespace AcDream.App.Input;
/// chase-camera lifetimes. The window host wires this owner but never mutates
/// those slots directly.
/// </summary>
internal sealed class PlayerModeController : ILocalPlayerTeleportModeOperations
internal sealed class PlayerModeController :
ILocalPlayerTeleportModeOperations,
IDevToolsPlayerModeTarget
{
private readonly LocalPlayerModeState _mode;
private readonly LocalPlayerControllerSlot _controllerSlot;

View file

@ -4,13 +4,20 @@ using Silk.NET.Input;
namespace AcDream.App.Input;
internal interface IDevToolsInputContext : IInputContext, IDisposable
{
bool IsDisposalComplete { get; }
void Activate();
void Deactivate();
}
/// <summary>
/// Non-owning input-context view for third-party frontends such as Silk's
/// ImGuiController. It interposes named device relays so frontend callbacks can
/// be silenced before a long live-session close and physically detached later,
/// without disposing the canonical Silk input context.
/// </summary>
internal sealed class QuiescentInputContext : IInputContext
internal sealed class QuiescentInputContext : IDevToolsInputContext
{
private readonly IInputContext _inner;
private readonly HostQuiescenceGate _quiescence;