/// <summary> /// Initializes a new instance of the <see cref="UnorderedAccessViewDescription"/> struct. /// </summary> /// <param name="buffer"></param> /// <param name="format"></param> /// <param name="firstElement"></param> /// <param name="numElements"></param> /// <param name="flags"><see cref="BufferUnorderedAccessViewFlags"/> options flags for the resource.</param> public UnorderedAccessViewDescription( ID3D11Buffer buffer, Format format, int firstElement = 0, int numElements = 0, BufferUnorderedAccessViewFlags flags = BufferUnorderedAccessViewFlags.None) : this() { Format = format; ViewDimension = UnorderedAccessViewDimension.Buffer; Buffer.FirstElement = firstElement; Buffer.NumElements = numElements; Buffer.Flags = flags; }
/// <summary> /// Initializes a new instance of the <see cref="UnorderedAccessViewDescription1"/> struct. /// </summary> /// <param name="viewDimension">The <see cref="UnorderedAccessViewDimension"/></param> /// <param name="format">The <see cref="DXGI.Format"/> to use or <see cref="Format.Unknown"/>.</param> /// <param name="mipSlice">The index of the mipmap level to use mip slice or FirstElement for BUFFER.</param> /// <param name="firstArraySlice">The index of the first texture to use in an array of textures or NumElements for BUFFER or FirstWSlice for TEXTURE3D.</param> /// <param name="arraySize">Number of textures in the array or WSize for TEXTURE3D.</param> /// <param name="flags"><see cref="BufferUnorderedAccessViewFlags"/> options flags for the resource.</param> /// <param name="planeSlice"></param> public UnorderedAccessViewDescription1( UnorderedAccessViewDimension viewDimension, Format format = Format.Unknown, int mipSlice = 0, int firstArraySlice = 0, int arraySize = -1, BufferUnorderedAccessViewFlags flags = BufferUnorderedAccessViewFlags.None, int planeSlice = 0) : this() { Format = format; ViewDimension = viewDimension; switch (viewDimension) { case UnorderedAccessViewDimension.Buffer: Buffer.FirstElement = mipSlice; Buffer.NumElements = firstArraySlice; Buffer.Flags = flags; break; case UnorderedAccessViewDimension.Texture1D: Texture1D.MipSlice = mipSlice; break; case UnorderedAccessViewDimension.Texture1DArray: Texture1DArray.MipSlice = mipSlice; Texture1DArray.FirstArraySlice = firstArraySlice; Texture1DArray.ArraySize = arraySize; break; case UnorderedAccessViewDimension.Texture2D: Texture2D.MipSlice = mipSlice; Texture2D.PlaneSlice = planeSlice; break; case UnorderedAccessViewDimension.Texture2DArray: Texture2DArray.MipSlice = mipSlice; Texture2DArray.FirstArraySlice = firstArraySlice; Texture2DArray.ArraySize = arraySize; Texture2DArray.PlaneSlice = planeSlice; break; case UnorderedAccessViewDimension.Texture3D: Texture3D.MipSlice = mipSlice; Texture3D.FirstWSlice = firstArraySlice; Texture3D.WSize = arraySize; break; } }