public static void Initialize(Device device) { lock (LockObject) { if (_isInitialized) { return; } _instance = new TextureManager11(device); _instance._textureSRVs.Add(TexDefault, _instance.Create1By1Tex(device, Color.White)); _instance._textureSRVs.Add(TexDefaultNorm, _instance.Create1By1Tex(device, Color.DeepSkyBlue)); _isInitialized = true; } }
protected override void InitializeInternal() { base.InitializeInternal(); var clientSize = ControlWindow.ClientSize; _swapChainDescription = new SwapChainDescription() { BufferCount = 1, ModeDescription = new ModeDescription(clientSize.Width, clientSize.Height, new Rational(60, 1), Format.B8G8R8A8_UNorm), IsWindowed = true, OutputHandle = ControlWindow.Handle, SampleDescription = new SampleDescription(1, 0), SwapEffect = SwapEffect.Discard, Usage = Usage.RenderTargetOutput }; SharpDX.Direct3D11.Device.CreateWithSwapChain(DriverType.Hardware, DeviceCreationFlags.None, _swapChainDescription, out _d3dDevice, out _swapChain); _immediateContext = _d3dDevice.ImmediateContext; _factory = _swapChain.GetParent <Factory>(); RenderStates11.Initialize(_d3dDevice); EffectManager11.Initialize(); EffectManager11.Instance?.InitializeAllEffects(_d3dDevice); TextureLoader.Initialize(); InputLayouts.InitializeAll(_d3dDevice); TextureManager11.Initialize(_d3dDevice); _renderTarget = new RenderTarget11(this, this); _renderTarget.Initialize(); ChildComponents.Add(_renderTarget); _skybox = new Skybox(this, this, 5000); _skybox.CubeMapSRV = TextureManager11.Instance.QuickCreateCubeMap("snowfield"); _skybox.Initialize(); ChildComponents.Add(_skybox); ResetSurface(this); }