public DX11NodesFactory(IHDEHost hdehost, DotNetPluginFactory dnfactory, INodeInfoFactory ni, IORegistry ioreg, ILogger logger) { DX11EnumFormatHelper.CreateNullDeviceFormat(); this.hdehost = hdehost; this.ioreg = ioreg; this.logger = logger; this.hdehost.RootNode.Removed += new Core.CollectionDelegate <INode2>(RootNode_Removed); DX11ResourceRegistry reg = new DX11ResourceRegistry(); this.ioreg.Register(reg, true); this.hdehost.MainLoop.OnPresent += GraphEventService_OnPresent; this.hdehost.MainLoop.OnPrepareGraph += GraphEventService_OnPrepareGraph; this.hdehost.MainLoop.OnRender += GraphEventService_OnRender; this.displaymanager = new DX11DisplayManager(); this.devicemanager = new DX11AutoAdapterDeviceManager(this.logger, this.displaymanager); this.graphbuilder = new DX11GraphBuilder <IDX11ResourceProvider>(hdehost, reg); this.graphbuilder.RenderRequest += graphbuilder_OnRenderRequest; this.rendermanager = new DX11RenderManager(this.devicemanager, this.graphbuilder, this.logger); DX11GlobalDevice.DeviceManager = this.devicemanager; DX11GlobalDevice.RenderManager = this.rendermanager; this.BuildAAEnum(); }
public PluginContainer( IInternalPluginHost pluginHost, IORegistry ioRegistry, CompositionContainer parentContainer, Type pluginType, INodeInfo nodeInfo ) { FIOFactory = new IOFactory(pluginHost, ioRegistry); var catalog = new TypeCatalog(pluginType); var ioExportProvider = new IOExportProvider(FIOFactory); var hostExportProvider = new HostExportProvider() { PluginHost = pluginHost }; var exportProviders = new ExportProvider[] { hostExportProvider, ioExportProvider, parentContainer }; FContainer = new CompositionContainer(catalog, exportProviders); FContainer.ComposeParts(this); FPlugin = PluginBase as IPluginEvaluate; FAutoEvaluate = nodeInfo.AutoEvaluate; FIOFactory.OnCreated(EventArgs.Empty); }
public DX11NodesFactory(IHDEHost hdehost, DotNetPluginFactory dnfactory, INodeInfoFactory ni, IORegistry ioreg, ILogger logger) { DX11EnumFormatHelper.CreateNullDeviceFormat(); this.hdehost = hdehost; this.ioreg = ioreg; this.logger = logger; this.hdehost.RootNode.Removed += new Core.CollectionDelegate<INode2>(RootNode_Removed); DX11ResourceRegistry reg = new DX11ResourceRegistry(); this.ioreg.Register(reg, true); this.hdehost.MainLoop.OnPresent += GraphEventService_OnPresent; this.hdehost.MainLoop.OnPrepareGraph += GraphEventService_OnPrepareGraph; this.hdehost.MainLoop.OnRender += GraphEventService_OnRender; this.displaymanager = new DX11DisplayManager(); this.devicemanager = new DX11AutoAdapterDeviceManager(this.logger, this.displaymanager); this.graphbuilder = new DX11GraphBuilder<IDX11ResourceProvider>(hdehost, reg); this.graphbuilder.RenderRequest += graphbuilder_OnRenderRequest; this.rendermanager = new DX11RenderManager(this.devicemanager, this.graphbuilder,this.logger); DX11GlobalDevice.DeviceManager = this.devicemanager; DX11GlobalDevice.RenderManager = this.rendermanager; this.BuildAAEnum(); }
public HDEHost() { FUseAppdata = Environment.GetCommandLineArgs().Contains("/appdata"); // Set vvvv.exe path ExePath = Path.GetFullPath(Path.Combine(Path.GetDirectoryName((typeof(HDEHost).Assembly.Location)), @"..\..")); //add repository paths from commandline //from commandline var repoArg = "/package-repositories"; var packageRepositories = ExtractPaths(repoArg); AssemblyLoader.AddPackageRepositories(packageRepositories); //the built-in one if (Directory.Exists(PacksPath)) { AssemblyLoader.AddPackageRepository(PacksPath); } //the one where the user is supposed to install packages to share it between vvvversions if (FUseAppdata) { if (Directory.Exists(UserPacksPath)) { AssemblyLoader.AddPackageRepository(UserPacksPath); } } //the legacy path if (Directory.Exists(UserPacksPathLegacy)) { AssemblyLoader.AddPackageRepository(UserPacksPathLegacy); } // Set name to vvvv thread for easier debugging. Thread.CurrentThread.Name = "vvvv"; // Create a windows forms sync context (FileSystemWatcher runs asynchronously). SynchronizationContext.SetSynchronizationContext(new MySynchronizationContext()); // Register at least one ICommandHistory for top level element ISolution var mappingRegistry = new MappingRegistry(); mappingRegistry.RegisterMapping <ISolution, ICommandHistory, CommandHistory>(MapInstantiation.PerInstanceAndItsChilds); var location = Shell.CallerPath.ConcatPath(@"..\..\lib\nodes\plugins").ConcatPath("Solution.sln"); Solution = new Solution(location, mappingRegistry); EnumManager.SetHDEHost(this); Logger = new DefaultLogger(); IORegistry = new IORegistry(); // Will tell Windows Forms that a message loop is indeed running Application.RegisterMessageLoop(IsSendingMessages); }
public StructNodesFactory(CompositionContainer parentContainer, IORegistry ioreg, IHDEHost hdeHost, ISolution solution) : base(parentContainer, ".dll;.struct") { FHDEHost = hdeHost; FParentContainer = parentContainer; FIORegistry = ioreg; FSolution = solution; FBasePath = Assembly.GetExecutingAssembly().Location.Replace($"FACTORIES{System.IO.Path.DirectorySeparatorChar}STRUCTNODESFACTORY.dll", ""); Initialize(); }
public HDEHost() { //AppDomain.CurrentDomain.AssemblyResolve += ResolveAssemblyCB; //set vvvv.exe path ExePath = Path.GetFullPath(Path.Combine(Path.GetDirectoryName((typeof(HDEHost).Assembly.Location)), @"..\..")); // Set name to vvvv thread for easier debugging. Thread.CurrentThread.Name = "vvvv"; // Create a windows forms sync context (FileSystemWatcher runs asynchronously). var context = SynchronizationContext.Current; if (context == null) { // We need to create a user control to get a sync context. var control = new UserControl(); context = SynchronizationContext.Current; control.Dispose(); Debug.Assert(context != null, "SynchronizationContext not set."); } // Register at least one ICommandHistory for top level element ISolution var mappingRegistry = new MappingRegistry(); mappingRegistry.RegisterMapping <ISolution, ICommandHistory, CommandHistory>(MapInstantiation.PerInstanceAndItsChilds); var location = Shell.CallerPath.ConcatPath(@"..\..\lib\nodes\plugins").ConcatPath("Solution.sln"); Solution = new Solution(location, mappingRegistry); EnumManager.SetHDEHost(this); Logger = new DefaultLogger(); IORegistry = new IORegistry(); // Will tell Windows Forms that a message loop is indeed running Application.RegisterMessageLoop(IsSendingMessages); }
public HDEHost() { // Set vvvv.exe path ExePath = Path.GetFullPath(Path.Combine(Path.GetDirectoryName((typeof(HDEHost).Assembly.Location)), @"..\..")); //add repository paths from commandline //from commandline var repoArg = "/package-repositories"; var packageRepositories = AssemblyLoader.ParseCommandLine(repoArg); //from args.txt var argsFile = Path.Combine(ExePath, "args.txt"); if (File.Exists(argsFile)) { var args = File.ReadAllText(argsFile).Trim('\r', '\n', ' ').Split(' '); var sourcesIndex = Array.IndexOf(args, repoArg); if (sourcesIndex >= 0 && args.Length > sourcesIndex + 1) { var sourcesString = args[sourcesIndex + 1].Trim('"'); var repoPaths = sourcesString.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < repoPaths.Length; i++) { repoPaths[i] = repoPaths[i].Trim('"', '\\'); } packageRepositories = packageRepositories.Union(repoPaths).ToArray(); } } //make relative paths absolute for (int i = 0; i < packageRepositories.Length; i++) { if (Path.IsPathRooted(packageRepositories[i])) { packageRepositories[i] = Path.Combine(ExePath, packageRepositories[i]); } } AssemblyLoader.AddPackageRepositories(packageRepositories); //the built-in one if (Directory.Exists(PacksPath)) { AssemblyLoader.AddPackageRepository(PacksPath); } //the one where the user is supposed to install packages if (Directory.Exists(UserPacksPatch)) { AssemblyLoader.AddPackageRepository(UserPacksPatch); } // Set name to vvvv thread for easier debugging. Thread.CurrentThread.Name = "vvvv"; // Create a windows forms sync context (FileSystemWatcher runs asynchronously). SynchronizationContext.SetSynchronizationContext(new MySynchronizationContext()); // Register at least one ICommandHistory for top level element ISolution var mappingRegistry = new MappingRegistry(); mappingRegistry.RegisterMapping <ISolution, ICommandHistory, CommandHistory>(MapInstantiation.PerInstanceAndItsChilds); var location = Shell.CallerPath.ConcatPath(@"..\..\lib\nodes\plugins").ConcatPath("Solution.sln"); Solution = new Solution(location, mappingRegistry); EnumManager.SetHDEHost(this); Logger = new DefaultLogger(); IORegistry = new IORegistry(); // Will tell Windows Forms that a message loop is indeed running Application.RegisterMessageLoop(IsSendingMessages); }
public DX11NodesFactory(IHDEHost hdehost, DotNetPluginFactory dnfactory, INodeInfoFactory ni, IORegistry ioreg, ILogger logger) { //Attach lib core path and plugins path string path = Path.GetDirectoryName(typeof(DX11DeviceRenderer).Assembly.Location); string vvvvpath = Path.GetDirectoryName(Application.ExecutablePath); string varpath = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.Process); varpath += ";" + path; vvvvpath = Path.Combine(vvvvpath, "packs\\dx11\\nodes\\plugins"); varpath += ";" + path; Environment.SetEnvironmentVariable("Path", varpath, EnvironmentVariableTarget.Process); DX11EnumFormatHelper.CreateNullDeviceFormat(); this.hdehost = hdehost; this.ioreg = ioreg; this.logger = logger; //Workaround for vvvv < 35.6 var versionProperty = hdehost.GetType().GetProperty("Version"); if (versionProperty == null) { this.hdehost.RootNode.Removed += new Core.CollectionDelegate <INode2>(RootNode_Removed); } DX11ResourceRegistry reg = new DX11ResourceRegistry(); this.ioreg.Register(reg, true); this.hdehost.MainLoop.OnPresent += GraphEventService_OnPresent; this.hdehost.MainLoop.OnPrepareGraph += GraphEventService_OnPrepareGraph; this.hdehost.MainLoop.OnRender += GraphEventService_OnRender; this.displaymanager = new DX11DisplayManager(); this.DirectWriteFactory = new DWriteFactory(SlimDX.DirectWrite.FactoryType.Shared); DirectWriteFontUtils.SetFontEnum(this.hdehost, this.DirectWriteFactory); string[] args = Environment.GetCommandLineArgs(); foreach (string s in args) { string sl = s.ToLower(); if (sl.StartsWith("/dx11mode:")) { sl = sl.Replace("/dx11mode:", ""); if (sl == "permonitor") { this.devicemanager = new DX11PerMonitorDeviceManager(this.logger, this.displaymanager); } else if (sl == "nvidia") { this.devicemanager = new DX11AutoAdapterDeviceManager(this.logger, this.displaymanager); } else if (sl == "peradapter") { this.devicemanager = new DX11PerAdapterDeviceManager(this.logger, this.displaymanager); } else if (sl == "all") { this.devicemanager = new DX11AllAdapterDeviceManager(this.logger, this.displaymanager); } else if (sl.StartsWith("force")) { sl = sl.Replace("force", ""); try { int i = int.Parse(sl); if (i >= 0 && i < this.displaymanager.AdapterCount) { this.devicemanager = new DX11AutoAdapterDeviceManager(this.logger, this.displaymanager, i); } } catch { } } else if (sl.StartsWith("pooled")) { sl = sl.Replace("pooled", ""); try { int i = 0; int.TryParse(sl, out i); this.devicemanager = new DX11PooledAdapterDeviceManager(this.logger, this.displaymanager, i); } catch { } } } } if (this.devicemanager == null) { this.devicemanager = new DX11AutoAdapterDeviceManager(this.logger, this.displaymanager); } this.graphbuilder = new DX11GraphBuilder(hdehost, reg); this.graphbuilder.RenderRequest += graphbuilder_OnRenderRequest; this.rendermanager = new DX11RenderManager(this.devicemanager, this.graphbuilder, this.logger); DX11GlobalDevice.DeviceManager = this.devicemanager; DX11GlobalDevice.RenderManager = this.rendermanager; this.BuildAAEnum(); this.RegisterStateEnums(); this.BuildVertexLayoutsEnum(); }
public HDEHost() { // Set vvvv.exe path ExePath = Path.GetFullPath(Path.Combine(Path.GetDirectoryName((typeof(HDEHost).Assembly.Location)), @"..\..")); //add repository paths from commandline //from commandline var repoArg = "/package-repositories"; var packageRepositories = AssemblyProbing.ParseCommandLine(repoArg); //from args.txt var argsFile = Path.Combine(ExePath, "args.txt"); if (File.Exists(argsFile)) { var args = File.ReadAllText(argsFile); var repoPaths = args.Split(new string[] { "\r", "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries) .Where(l => l.StartsWith(repoArg)) .SelectMany(r => r.Substring(repoArg.Length + 1).Trim('"').Split(';')); packageRepositories = packageRepositories.Union(repoPaths).ToArray(); } AssemblyProbing.AddPackageRepositories(packageRepositories); //the built-in one AssemblyProbing.AddPackageRepository(PacksPath); //the one where the user is supposed to install packages AssemblyProbing.AddPackageRepository(UserPacksPatch); // Set name to vvvv thread for easier debugging. Thread.CurrentThread.Name = "vvvv"; // Create a windows forms sync context (FileSystemWatcher runs asynchronously). var context = SynchronizationContext.Current; if (context == null) { // We need to create a user control to get a sync context. var control = new UserControl(); context = SynchronizationContext.Current; control.Dispose(); Debug.Assert(context != null, "SynchronizationContext not set."); } // Register at least one ICommandHistory for top level element ISolution var mappingRegistry = new MappingRegistry(); mappingRegistry.RegisterMapping <ISolution, ICommandHistory, CommandHistory>(MapInstantiation.PerInstanceAndItsChilds); var location = Shell.CallerPath.ConcatPath(@"..\..\lib\nodes\plugins").ConcatPath("Solution.sln"); Solution = new Solution(location, mappingRegistry); EnumManager.SetHDEHost(this); Logger = new DefaultLogger(); IORegistry = new IORegistry(); // Will tell Windows Forms that a message loop is indeed running Application.RegisterMessageLoop(IsSendingMessages); }
public DX11NodesFactory(IHDEHost hdehost, DotNetPluginFactory dnfactory, INodeInfoFactory ni, IORegistry ioreg, ILogger logger) { //Attach lib core path and plugins path string path = Path.GetDirectoryName(typeof(DX11DeviceRenderer).Assembly.Location); string vvvvpath = Path.GetDirectoryName(Application.ExecutablePath); string varpath = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.Process); varpath += ";" + path; vvvvpath = Path.Combine(vvvvpath, "packs\\dx11\\nodes\\plugins"); varpath += ";" + path; Environment.SetEnvironmentVariable("Path", varpath, EnvironmentVariableTarget.Process); DX11EnumFormatHelper.CreateNullDeviceFormat(); this.hdehost = hdehost; this.ioreg = ioreg; this.logger = logger; this.hdehost.RootNode.Removed += new Core.CollectionDelegate<INode2>(RootNode_Removed); DX11ResourceRegistry reg = new DX11ResourceRegistry(); this.ioreg.Register(reg, true); this.hdehost.MainLoop.OnPresent += GraphEventService_OnPresent; this.hdehost.MainLoop.OnPrepareGraph += GraphEventService_OnPrepareGraph; this.hdehost.MainLoop.OnRender += GraphEventService_OnRender; this.displaymanager = new DX11DisplayManager(); this.DirectWriteFactory = new DWriteFactory(SlimDX.DirectWrite.FactoryType.Shared); string[] args = Environment.GetCommandLineArgs(); foreach (string s in args) { string sl = s.ToLower(); if (sl.StartsWith("/dx11mode:")) { sl = sl.Replace("/dx11mode:", ""); if (sl == "permonitor") { this.devicemanager = new DX11PerMonitorDeviceManager(this.logger, this.displaymanager); } else if (sl == "peradapter") { this.devicemanager = new DX11PerAdapterDeviceManager(this.logger, this.displaymanager); } else if (sl.StartsWith("force")) { sl = sl.Replace("force", ""); try { int i = int.Parse(sl); if (i >= 0 && i < this.displaymanager.AdapterCount) { this.devicemanager = new DX11AutoAdapterDeviceManager(this.logger, this.displaymanager, i); } } catch { } } } } if (this.devicemanager == null) { this.devicemanager = new DX11AutoAdapterDeviceManager(this.logger, this.displaymanager); } this.graphbuilder = new DX11GraphBuilder<IDX11ResourceProvider>(hdehost, reg); this.graphbuilder.RenderRequest += graphbuilder_OnRenderRequest; this.rendermanager = new DX11RenderManager(this.devicemanager, this.graphbuilder,this.logger); DX11GlobalDevice.DeviceManager = this.devicemanager; DX11GlobalDevice.RenderManager = this.rendermanager; this.BuildAAEnum(); }
public DX11NodesFactory(IHDEHost hdehost, DotNetPluginFactory dnfactory, INodeInfoFactory ni, IORegistry ioreg, ILogger logger) { DX11EnumFormatHelper.CreateNullDeviceFormat(); this.hdehost = hdehost; this.ioreg = ioreg; this.logger = logger; this.hdehost.RootNode.Removed += new Core.CollectionDelegate <INode2>(RootNode_Removed); DX11ResourceRegistry reg = new DX11ResourceRegistry(); this.ioreg.Register(reg, true); this.hdehost.MainLoop.OnPresent += GraphEventService_OnPresent; this.hdehost.MainLoop.OnPrepareGraph += GraphEventService_OnPrepareGraph; this.hdehost.MainLoop.OnRender += GraphEventService_OnRender; this.displaymanager = new DX11DisplayManager(); string[] args = Environment.GetCommandLineArgs(); foreach (string s in args) { string sl = s.ToLower(); if (sl.StartsWith("/dx11mode:")) { sl = sl.Replace("/dx11mode:", ""); if (sl == "permonitor") { this.devicemanager = new DX11PerMonitorDeviceManager(this.logger, this.displaymanager); } else if (sl == "peradapter") { this.devicemanager = new DX11PerAdapterDeviceManager(this.logger, this.displaymanager); } else if (sl.StartsWith("force")) { sl = sl.Replace("force", ""); try { int i = int.Parse(sl); if (i >= 0 && i < this.displaymanager.AdapterCount) { this.devicemanager = new DX11AutoAdapterDeviceManager(this.logger, this.displaymanager, i); } } catch { } } } } if (this.devicemanager == null) { this.devicemanager = new DX11AutoAdapterDeviceManager(this.logger, this.displaymanager); } this.graphbuilder = new DX11GraphBuilder <IDX11ResourceProvider>(hdehost, reg); this.graphbuilder.RenderRequest += graphbuilder_OnRenderRequest; this.rendermanager = new DX11RenderManager(this.devicemanager, this.graphbuilder, this.logger); DX11GlobalDevice.DeviceManager = this.devicemanager; DX11GlobalDevice.RenderManager = this.rendermanager; this.BuildAAEnum(); }
public DX11NodesFactory(IHDEHost hdehost, DotNetPluginFactory dnfactory, INodeInfoFactory ni, IORegistry ioreg, ILogger logger) { DX11EnumFormatHelper.CreateNullDeviceFormat(); this.hdehost = hdehost; this.ioreg = ioreg; this.logger = logger; this.hdehost.RootNode.Removed += new Core.CollectionDelegate<INode2>(RootNode_Removed); DX11ResourceRegistry reg = new DX11ResourceRegistry(); this.ioreg.Register(reg, true); this.hdehost.MainLoop.OnPresent += GraphEventService_OnPresent; this.hdehost.MainLoop.OnPrepareGraph += GraphEventService_OnPrepareGraph; this.hdehost.MainLoop.OnRender += GraphEventService_OnRender; this.displaymanager = new DX11DisplayManager(); string[] args = Environment.GetCommandLineArgs(); foreach (string s in args) { string sl = s.ToLower(); if (sl.StartsWith("/dx11mode:")) { sl = sl.Replace("/dx11mode:", ""); if (sl == "permonitor") { this.devicemanager = new DX11PerMonitorDeviceManager(this.logger, this.displaymanager); } else if (sl == "peradapter") { this.devicemanager = new DX11PerAdapterDeviceManager(this.logger, this.displaymanager); } else if (sl.StartsWith("force")) { sl = sl.Replace("force", ""); try { int i = int.Parse(sl); if (i >= 0 && i < this.displaymanager.AdapterCount) { this.devicemanager = new DX11AutoAdapterDeviceManager(this.logger, this.displaymanager, i); } } catch { } } } } if (this.devicemanager == null) { this.devicemanager = new DX11AutoAdapterDeviceManager(this.logger, this.displaymanager); } this.graphbuilder = new DX11GraphBuilder<IDX11ResourceProvider>(hdehost, reg); this.graphbuilder.RenderRequest += graphbuilder_OnRenderRequest; this.rendermanager = new DX11RenderManager(this.devicemanager, this.graphbuilder,this.logger); DX11GlobalDevice.DeviceManager = this.devicemanager; DX11GlobalDevice.RenderManager = this.rendermanager; this.BuildAAEnum(); }