public MyBlitter(DisplayManager dispManager) { Owner = dispManager; }
public MyBlitter(DisplayManager dispManager) { _owner = dispManager; }
public InputApi(Action <string> logCallback, DisplayManager displayManager, InputManager inputManager, IMainFormForApi mainForm) { _displayManager = displayManager; _inputManager = inputManager; _mainForm = mainForm; }
public InputApi(Action <string> logCallback, IMainFormForApi mainForm, DisplayManager displayManager, InputManager inputManager, Config config, IEmulator emulator, GameInfo game) { _displayManager = displayManager; _inputManager = inputManager; _mainForm = mainForm; }
public SaveStateApi(Action <string> logCallback, DisplayManager displayManager, InputManager inputManager, IMainFormForApi mainForm) { LogCallback = logCallback; _mainForm = mainForm; }
public Win32LuaLibraries( IEmulatorServiceProvider serviceProvider, MainForm mainForm, DisplayManager displayManager, InputManager inputManager, Config config, IEmulator emulator, IGameInfo game) { void EnumerateLuaFunctions(string name, Type type, LuaLibraryBase instance) { if (instance != null) { _lua.NewTable(name); } foreach (var method in type.GetMethods()) { var foundAttrs = method.GetCustomAttributes(typeof(LuaMethodAttribute), false); if (foundAttrs.Length == 0) { continue; } if (instance != null) { _lua.RegisterFunction($"{name}.{((LuaMethodAttribute) foundAttrs[0]).Name}", instance, method); } Docs.Add(new LibraryFunction( name, type.GetCustomAttributes(typeof(DescriptionAttribute), false).Cast <DescriptionAttribute>() .Select(descAttr => descAttr.Description).FirstOrDefault() ?? string.Empty, method )); } } if (true /*NLua.Lua.WhichLua == "NLua"*/) { _lua["keepalives"] = _lua.NewTable(); } _th = new NLuaTableHelper(_lua); _displayManager = displayManager; _inputManager = inputManager; _mainForm = mainForm; LuaWait = new AutoResetEvent(false); Docs.Clear(); var apiContainer = ApiManager.RestartLua(serviceProvider, LogToLuaConsole, _mainForm, _displayManager, _inputManager, _mainForm.MovieSession, _mainForm.Tools, config, emulator, game); // Register lua libraries foreach (var lib in Client.Common.ReflectionCache.Types.Concat(EmuHawk.ReflectionCache.Types) .Where(t => typeof(LuaLibraryBase).IsAssignableFrom(t) && t.IsSealed && ServiceInjector.IsAvailable(serviceProvider, t))) { bool addLibrary = true; var attributes = lib.GetCustomAttributes(typeof(LuaLibraryAttribute), false); if (attributes.Any()) { addLibrary = VersionInfo.DeveloperBuild || ((LuaLibraryAttribute)attributes.First()).Released; } if (addLibrary) { var instance = (LuaLibraryBase)Activator.CreateInstance(lib, this, apiContainer, (Action <string>)LogToLuaConsole); ServiceInjector.UpdateServices(serviceProvider, instance); // TODO: make EmuHawk libraries have a base class with common properties such as this // and inject them here if (instance is ClientLuaLibrary clientLib) { clientLib.MainForm = _mainForm; } else if (instance is ConsoleLuaLibrary consoleLib) { consoleLib.Tools = _mainForm.Tools; _logToLuaConsoleCallback = consoleLib.Log; } else if (instance is GuiLuaLibrary guiLib) { guiLib.CreateLuaCanvasCallback = (width, height, x, y) => { var canvas = new LuaCanvas(width, height, x, y, _th, LogToLuaConsole); canvas.Show(); return(_th.ObjectToTable(canvas)); }; } else if (instance is TAStudioLuaLibrary tastudioLib) { tastudioLib.Tools = _mainForm.Tools; } EnumerateLuaFunctions(instance.Name, lib, instance); Libraries.Add(lib, instance); } } _lua.RegisterFunction("print", this, GetType().GetMethod("Print")); EmulationLuaLibrary.FrameAdvanceCallback = Frameadvance; EmulationLuaLibrary.YieldCallback = EmuYield; EnumerateLuaFunctions(nameof(LuaCanvas), typeof(LuaCanvas), null); // add LuaCanvas to Lua function reference table }
public GuiApi(Action <string> logCallback, DisplayManager displayManager) { LogCallback = logCallback; _displayManager = displayManager; }