public void BeginRenderPass(int numRenderTargets, RenderPassRenderTargetDescription[] renderTargetsRef, RenderPassDepthStencilDescription?depthStencilRef, RenderPassFlags flags) { using ID3D12GraphicsCommandList4? commandList = currentCommandList.NativeCommandList.QueryInterfaceOrNull <ID3D12GraphicsCommandList4>(); if (commandList != null) { commandList.BeginRenderPass(numRenderTargets, renderTargetsRef, depthStencilRef, flags); } }
/// <summary> /// Marks the beginning of a render pass by binding a set of output resources for the duration of the render pass. /// These bindings are to one or more render target views (RTVs), and/or to a depth stencil view (DSV). /// </summary> /// <param name="renderTargets">An array of <see cref="RenderPassRenderTargetDescription"/>, which describes bindings (fixed for the duration of the render pass) to one or more render target views (RTVs), as well as their beginning and ending access characteristics.</param> /// <param name="depthStencil">An optional <see cref="RenderPassDepthStencilDescription"/>, which describes a binding (fixed for the duration of the render pass) to a depth stencil view (DSV), as well as its beginning and ending access characteristics.</param> /// <param name="flags">The nature/requirements of the render pass; for example, whether it is a suspending or a resuming render pass, or whether it wants to write to unordered access view(s).</param> public void BeginRenderPass(RenderPassRenderTargetDescription[] renderTargets, RenderPassDepthStencilDescription?depthStencil, RenderPassFlags flags = RenderPassFlags.None) { BeginRenderPass(renderTargets.Length, renderTargets, depthStencil, flags); }