public unsafe Span <T> AsSpan <T>(ID3D11Texture1D resource, int mipSlice, int arraySlice) where T : unmanaged { resource.CalculateSubResourceIndex(mipSlice, arraySlice, out int mipSize); Span <byte> source = new(DataPointer.ToPointer(), mipSize *resource.Description.Format.SizeOfInBytes()); return(MemoryMarshal.Cast <byte, T>(source)); }
public ShaderResourceViewDescription1( ID3D11Texture1D texture, bool isArray, Format format = Format.Unknown, int mostDetailedMip = 0, int mipLevels = -1, int firstArraySlice = 0, int arraySize = -1) : this() { ViewDimension = isArray ? ShaderResourceViewDimension.Texture1DArray : ShaderResourceViewDimension.Texture1D; if (format == Format.Unknown || mipLevels == -1 || (arraySize == -1 && ShaderResourceViewDimension.Texture1DArray == ViewDimension)) { var textureDesc = texture.Description; if (format == Format.Unknown) { format = textureDesc.Format; } if (mipLevels == -1) { mipLevels = textureDesc.MipLevels - mostDetailedMip; } if (arraySize == -1) { arraySize = textureDesc.ArraySize - firstArraySlice; } } Format = format; switch (ViewDimension) { case ShaderResourceViewDimension.Texture1D: Texture1D.MostDetailedMip = mostDetailedMip; Texture1D.MipLevels = mipLevels; break; case ShaderResourceViewDimension.Texture1DArray: Texture1DArray.MostDetailedMip = mostDetailedMip; Texture1DArray.MipLevels = mipLevels; Texture1DArray.FirstArraySlice = firstArraySlice; Texture1DArray.ArraySize = arraySize; break; default: break; } }
/// <summary> /// Initializes a new instance of the <see cref="DepthStencilViewDescription"/> struct. /// </summary> /// <param name="texture"></param> /// <param name="isArray"></param> /// <param name="format"></param> /// <param name="mipSlice"></param> /// <param name="firstArraySlice"></param> /// <param name="arraySize"></param> /// <param name="flags"></param> public DepthStencilViewDescription( ID3D11Texture1D texture, bool isArray, Format format = Format.Unknown, int mipSlice = 0, int firstArraySlice = 0, int arraySize = -1, DepthStencilViewFlags flags = DepthStencilViewFlags.None) : this() { ViewDimension = isArray ? DepthStencilViewDimension.Texture1DArray : DepthStencilViewDimension.Texture1D; Flags = flags; if (format == Format.Unknown || (arraySize == -1 && DepthStencilViewDimension.Texture1DArray == ViewDimension)) { var textureDesc = texture.Description; if (format == Format.Unknown) { format = textureDesc.Format; } if (arraySize == -1) { arraySize = textureDesc.ArraySize - firstArraySlice; } } Format = format; switch (ViewDimension) { case DepthStencilViewDimension.Texture1D: Texture1D.MipSlice = mipSlice; break; case DepthStencilViewDimension.Texture1DArray: Texture1DArray.MipSlice = mipSlice; Texture1DArray.FirstArraySlice = firstArraySlice; Texture1DArray.ArraySize = arraySize; break; default: break; } }
public RenderTargetViewDescription( ID3D11Texture1D texture, bool isArray, Format format = Format.Unknown, int mipSlice = 0, int firstArraySlice = 0, int arraySize = -1) : this() { ViewDimension = isArray ? RenderTargetViewDimension.Texture1DArray : RenderTargetViewDimension.Texture1D; if (format == Format.Unknown || (arraySize == -1 && RenderTargetViewDimension.Texture1DArray == ViewDimension)) { var textureDesc = texture.Description; if (format == Format.Unknown) { format = textureDesc.Format; } if (arraySize == -1) { arraySize = textureDesc.ArraySize - firstArraySlice; } } Format = format; switch (ViewDimension) { case RenderTargetViewDimension.Texture1D: Texture1D.MipSlice = mipSlice; break; case RenderTargetViewDimension.Texture1DArray: Texture1DArray.MipSlice = mipSlice; Texture1DArray.FirstArraySlice = firstArraySlice; Texture1DArray.ArraySize = arraySize; break; default: break; } }
/// <summary> /// Initializes a new instance of the <see cref="UnorderedAccessViewDescription1"/> struct. /// </summary> /// <param name="texture"></param> /// <param name="isArray"></param> /// <param name="format"></param> /// <param name="mipSlice"></param> /// <param name="firstArraySlice"></param> /// <param name="arraySize"></param> public UnorderedAccessViewDescription1( ID3D11Texture1D texture, bool isArray, Format format = Format.Unknown, int mipSlice = 0, int firstArraySlice = 0, int arraySize = -1) : this() { ViewDimension = isArray ? UnorderedAccessViewDimension.Texture1DArray : UnorderedAccessViewDimension.Texture1D; if (format == Format.Unknown || (-1 == arraySize && (UnorderedAccessViewDimension.Texture1DArray == ViewDimension))) { var textureDesc = texture.Description; if (format == Format.Unknown) { format = textureDesc.Format; } if (arraySize == -1) { arraySize = textureDesc.ArraySize - firstArraySlice; } } Format = format; switch (ViewDimension) { case UnorderedAccessViewDimension.Texture1D: Texture1D.MipSlice = mipSlice; break; case UnorderedAccessViewDimension.Texture1DArray: Texture1DArray.MipSlice = mipSlice; Texture1DArray.FirstArraySlice = firstArraySlice; Texture1DArray.ArraySize = arraySize; break; } }
public unsafe Span <T> AsSpan <T>(ID3D11Texture1D resource, int mipSlice, int arraySlice) { resource.CalculateSubResourceIndex(mipSlice, arraySlice, out int mipSize); return(new Span <T>(DataPointer.ToPointer(), mipSize * resource.Description.Format.SizeOfInBytes())); }