public void ClearRenderTargetView(CpuDescriptorHandle renderTargetView, Color4 colorRGBA, params RectI[] rectangles)
 {
     if (rectangles.Length == 0)
     {
         ClearRenderTargetView(renderTargetView, colorRGBA, 0, null);
     }
     else
     {
         ClearRenderTargetView(renderTargetView, colorRGBA, rectangles.Length, rectangles);
     }
 }
 public void ClearDepthStencilView(CpuDescriptorHandle depthStencilView, ClearFlags clearFlags, float depth, byte stencil, params RectI[] rectangles)
 {
     if (rectangles.Length == 0)
     {
         ClearDepthStencilView(depthStencilView, clearFlags, depth, stencil, 0, null);
     }
     else
     {
         ClearDepthStencilView(depthStencilView, clearFlags, depth, stencil, rectangles.Length, rectangles);
     }
 }
 public unsafe void ClearUnorderedAccessView(
     GpuDescriptorHandle viewGpuHandleInCurrentHeap,
     CpuDescriptorHandle viewCpuHandle,
     ID3D12Resource resource,
     IntVector4 clearValue,
     params RectI[] rectangles)
 {
     if (rectangles.Length == 0)
     {
         ClearUnorderedAccessViewUint(viewGpuHandleInCurrentHeap, viewCpuHandle, resource, clearValue, 0, null);
     }
     else
     {
         ClearUnorderedAccessViewUint(viewGpuHandleInCurrentHeap, viewCpuHandle, resource, clearValue, rectangles.Length, rectangles);
     }
 }
 public unsafe void OMSetRenderTargets(CpuDescriptorHandle renderTargetDescriptor, CpuDescriptorHandle?depthStencilDescriptor = null)
 {
     OMSetRenderTargets(1, new IntPtr(&renderTargetDescriptor), false, depthStencilDescriptor);
 }