예제 #1
0
        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();
        }
예제 #2
0
        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);
        }
예제 #3
0
        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();
        }
예제 #4
0
        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);
        }
예제 #5
0
        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();
        }
예제 #6
0
        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);
        }
예제 #7
0
        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);
        }
예제 #8
0
        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();
        }
예제 #9
0
        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);
        }
예제 #10
0
        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();
        }
예제 #11
0
        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();
        }
예제 #12
0
        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();
        }