using System; using System.Collections.Generic; using Robust.Client.Input; using Robust.Client.UserInterface; using Robust.Shared.Map; using Robust.Shared.Maths; using Robust.Shared.Timing; namespace Robust.Client.Graphics { internal interface IClydeInternal : IClyde, IClipboardManager { // Basic main loop hooks. void Render(); void FrameProcess(FrameEventArgs eventArgs); void ProcessInput(FrameEventArgs frameEventArgs); // Init. bool SeparateWindowThread { get; } bool InitializePreWindowing(); void EnterWindowLoop(); bool InitializePostWindowing(); void Ready(); void TerminateWindowLoop(); event Action TextEntered; event Action MouseMove; event Action MouseEnterLeave; event Action KeyUp; event Action KeyDown; event Action MouseWheel; event Action CloseWindow; event Action DestroyWindow; ClydeHandle LoadShader(ParsedShader shader, string? name = null, Dictionary? defines = null); void ReloadShader(ClydeHandle handle, ParsedShader newShader); /// /// Creates a new instance of a shader. /// /// The handle of the loaded shader as returned by . ShaderInstance InstanceShader(ClydeHandle handle); /// /// This is purely a hook for , use that instead. /// ScreenCoordinates MouseScreenPosition { get; } IClydeDebugInfo DebugInfo { get; } IClydeDebugStats DebugStats { get; } Texture GetStockTexture(ClydeStockTexture stockTexture); ClydeDebugLayers DebugLayers { get; set; } string GetKeyName(Keyboard.Key key); void Shutdown(); /// Null if not running on X11. uint? GetX11WindowId(); void RegisterGridEcsEvents(); void RunOnWindowThread(Action action); } }