Axiom.RenderSystems.DirectX9.D3DRenderSystem.Initialize C# (CSharp) Метод

Initialize() приватный метод

private Initialize ( bool autoCreateWindow, string windowTitle ) : Axiom.Graphics.RenderWindow
autoCreateWindow bool
windowTitle string
Результат Axiom.Graphics.RenderWindow
        public override RenderWindow Initialize(bool autoCreateWindow, string windowTitle)
        {
            LogManager.Instance.Write("[D3D9] : Subsystem Initializing");

            // Axiom specific
            WindowEventMonitor.Instance.MessagePump = Win32MessageHandling.MessagePump;

            // Init using current settings
            _activeD3DDriver = D3DHelper.GetDriverInfo(_pD3D)[ConfigOptions["Rendering Device"].Value];
            if (_activeD3DDriver == null)
                throw new ArgumentException("Problems finding requested Direct3D driver!");


            driverVersion.Major = _activeD3DDriver.AdapterIdentifier.DriverVersion.Major;
            driverVersion.Minor = _activeD3DDriver.AdapterIdentifier.DriverVersion.Minor;
            driverVersion.Release = _activeD3DDriver.AdapterIdentifier.DriverVersion.MajorRevision;
            driverVersion.Build = _activeD3DDriver.AdapterIdentifier.DriverVersion.MinorRevision;

            // Create the device manager.
            _deviceManager = new D3D9DeviceManager();

            // Create the texture manager for use by others        
            textureManager = new D3DTextureManager();

            // Also create hardware buffer manager
            _hardwareBufferManager = new D3DHardwareBufferManager();

            // Create the GPU program manager    
            _gpuProgramManager = new D3DGpuProgramManager();

            _hlslProgramFactory = new HLSLProgramFactory();

            RenderWindow renderWindow = null;

            if (autoCreateWindow)
            {
                var fullScreen = (ConfigOptions["Full Screen"].Value == "Yes");

                var optVm = ConfigOptions["Video Mode"];
                var vm = optVm.Value;
                var width = int.Parse(vm.Substring(0, vm.IndexOf("x")));
                var height = int.Parse(vm.Substring(vm.IndexOf("x") + 1, vm.IndexOf("@") - (vm.IndexOf("x") + 1)));
                var bpp = int.Parse(vm.Substring(vm.IndexOf("@") + 1, vm.IndexOf("-") - (vm.IndexOf("@") + 1)));

                // sRGB window option
                ConfigOption opt;
                var hwGamma = ConfigOptions.TryGetValue("sRGB Gamma Conversion", out opt) && (opt.Value == "Yes");

                var miscParams = new NamedParameterList();
                miscParams.Add("title", windowTitle); // Axiom only?
                miscParams.Add("colorDepth", bpp);
                miscParams.Add("FSAA", _fsaaSamples);
                miscParams.Add("FSAAHint", _fsaaHint);
                miscParams.Add("vsync", vSync);
                miscParams.Add("vsyncInterval", vSyncInterval);
                miscParams.Add("useNVPerfHUD", _useNVPerfHUD);
                miscParams.Add("gamma", hwGamma);
                miscParams.Add("monitorIndex", _activeD3DDriver.AdapterNumber);

                // create the render window
                renderWindow = CreateRenderWindow("Main Window", width, height, fullScreen, miscParams);

                // If we have 16bit depth buffer enable w-buffering.
                Debug.Assert(renderWindow != null);
                wBuffer = (renderWindow.ColorDepth == 16);
            }

            LogManager.Instance.Write("***************************************");
            LogManager.Instance.Write("*** D3D9 : Subsystem Initialized OK ***");
            LogManager.Instance.Write("***************************************");

            // call superclass method
            base.Initialize( autoCreateWindow, windowTitle );

            // Configure SlimDX
            SlimDX.Configuration.ThrowOnError = true;
            SlimDX.Configuration.AddResultWatch(ResultCode.DeviceLost, ResultWatchFlags.AlwaysIgnore);
            SlimDX.Configuration.AddResultWatch(ResultCode.WasStillDrawing, ResultWatchFlags.AlwaysIgnore);

#if DEBUG
            SlimDX.Configuration.DetectDoubleDispose = false;
            SlimDX.Configuration.EnableObjectTracking = true;
#else
            SlimDX.Configuration.DetectDoubleDispose = false;
            SlimDX.Configuration.EnableObjectTracking = false;
#endif

            return renderWindow;
        }
D3DRenderSystem