using Silk.NET.Input; namespace Engine.Input.Contracts; /// /// Not IInput — same reasoning as IEngineWindow not being IWindow: keep a /// clear line between our own vocabulary and the library's, even where a /// collision isn't imminent yet. Reuses Silk.NET's own Key enum /// rather than inventing one — it's just data, same as exposing /// IEngineWindow.Native directly. /// public interface IEngineInput { bool IsKeyDown(Key key); /// /// The raw Silk.NET input context, same escape hatch as /// IEngineWindow.Native — needed here specifically so engine.editor can /// construct Silk.NET.OpenGL.Extensions.ImGui's ImGuiController, which /// takes an IInputContext directly rather than anything of ours. /// IInputContext Native { get; } }