public ID3D11InfoQueue CreateInfoQueue() { var result = D3D11CommonBindings.QueryInterface_(_handle, D3D11Resources.D3D11InfoQueue, out var infoQueue); result.Check(nameof(D3D11Device)); return(new D3D11InfoQueue(infoQueue)); }
public ID3DBlob ReadFileToBlob(string fileName) { var result = D3D11CommonBindings.D3DReadFileToBlob_(fileName, out var ppContents); if (result.Failed) { throw new Win32Exception($"ReadFileToBlob failed with code: 0x{result.Code.ToString("X")}"); } return(new D3DBlob(ppContents)); }
public ID3D11Device Create(CreateDeviceArguments arguments) { DxgiSwapChainDesc desc = default; //desc.BufferCount = 2; // how do I use this with depth stencil? desc.BufferCount = 1; desc.BufferDesc.Width = (uint)arguments.Window.Width; desc.BufferDesc.Height = (uint)arguments.Window.Height; desc.BufferDesc.Format = DxgiFormat.R8G8B8A8Unorm; desc.BufferDesc.RefreshRate.Denominator = arguments.RefreshRate; desc.BufferDesc.Scaling = DxgiModeScaling.Unspecified; desc.BufferDesc.ScanlineOrdering = DxgiModeScanlineOrder.Unspecified; //desc.SampleDesc.Count = 4; // AA desc.SampleDesc.Count = 1; desc.SampleDesc.Quality = 0; desc.Flags = 0; desc.BufferUsage = DxgiUsage.RenderTargetOutput; desc.OutputWindow = arguments.Window.Handle; desc.Windowed = arguments.Window.Windowed ? 1 : 0; desc.SwapEffect = DxgiSwapEffect.Discard; //desc.SwapEffect = DxgiSwapEffect.FlipDiscard; // how do I use this with depth stencil? desc.Flags = DxgiSwapChainFlag.AllowModeSwitch; HRESULT result; IntPtr swapChain; IntPtr device; D3DFeatureLevel featureLevel; IntPtr context; var flags = arguments.Debug ? D3D11CreateDeviceFlag.Debug : D3D11CreateDeviceFlag.Default; unsafe { result = D3D11DeviceBindings.D3D11CreateDeviceAndSwapChain_( arguments.Adapter, D3DDriverType.Hardware, IntPtr.Zero, flags, null, 0, D3D11CommonBindings.D3D11SdkVersion(), in desc, out swapChain, out device, out featureLevel, out context); } if (result.Failed) { throw new Win32Exception($"D3D11CreateDeviceAndSwapChain failed with code : 0x{ result.Code.ToString("X")}"); } return(new D3D11Device(device, featureLevel, new D3D11SwapChain(swapChain), new D3D11DeviceContext(context))); }