public void ValidTest() { BufferElementCount count = new BufferElementCount(25); int value = count; Assert.AreEqual(value, 25); }
public void EqualityTest() { BufferElementCount count = new BufferElementCount(25); BufferElementCount count2 = new BufferElementCount(25); Assert.AreEqual(count, count2); }
/// <summary> /// Builds an immutable index buffer description with ushort backend /// </summary> /// <param name="elementCount">Element count</param> /// <returns>Buffer description to create index buffer</returns> public static BufferDescription ImmutableIndexBufferUShort(BufferElementCount elementCount) { return(new BufferDescription() { BindFlags = BindFlags.IndexBuffer, CpuAccessFlags = CpuAccessFlags.None, OptionFlags = ResourceOptionFlags.None, SizeInBytes = elementCount * sizeof(ushort), StructureByteStride = sizeof(ushort), Usage = ResourceUsage.Immutable }); }
/// <summary> /// Builds a writeable buffer description, that can be used as unordered access /// </summary> /// <param name="elementCount">Element count</param> /// <param name="stride">Structure stride, in bytes</param> /// <returns>Buffer description to create structured buffer</returns> public static BufferDescription WriteableStructuredBuffer(BufferElementCount elementCount, BufferStride stride) { return(new BufferDescription() { BindFlags = BindFlags.ShaderResource | BindFlags.UnorderedAccess, CpuAccessFlags = CpuAccessFlags.None, OptionFlags = ResourceOptionFlags.BufferStructured, SizeInBytes = elementCount * stride, StructureByteStride = stride, Usage = ResourceUsage.Default }); }
/// <summary> /// Builds a dynamic buffer description /// </summary> /// <param name="elementCount">Element count</param> /// <param name="stride">Structure stride, in bytes</param> /// <returns>Buffer description to create structured buffer</returns> public static BufferDescription DynamicStructuredBuffer(BufferElementCount elementCount, BufferStride stride) { return(new BufferDescription() { BindFlags = BindFlags.ShaderResource, CpuAccessFlags = CpuAccessFlags.Write, OptionFlags = ResourceOptionFlags.BufferStructured, SizeInBytes = elementCount * stride, StructureByteStride = stride, Usage = ResourceUsage.Dynamic }); }
/// <summary> /// Builds an immutable buffer description /// </summary> /// <param name="elementCount">Element count</param> /// <param name="stride">Structure stride, in bytes</param> /// <returns>Buffer description to create structured buffer</returns> public static BufferDescription ImmutableStructuredBuffer(BufferElementCount elementCount, BufferStride stride) { return new BufferDescription() { BindFlags = BindFlags.ShaderResource, CpuAccessFlags = CpuAccessFlags.None, OptionFlags = ResourceOptionFlags.BufferStructured, SizeInBytes = elementCount * stride, StructureByteStride = stride, Usage = ResourceUsage.Immutable }; }
/// <summary> /// Builds an immutable index buffer description with ushort backend /// </summary> /// <param name="elementCount">Element count</param> /// <returns>Buffer description to create index buffer</returns> public static BufferDescription ImmutableIndexBufferUShort(BufferElementCount elementCount) { return new BufferDescription() { BindFlags = BindFlags.IndexBuffer, CpuAccessFlags = CpuAccessFlags.None, OptionFlags = ResourceOptionFlags.None, SizeInBytes = elementCount * sizeof(ushort), StructureByteStride = sizeof(ushort), Usage = ResourceUsage.Immutable }; }
public void ImmutableTestUShort() { BufferElementCount count = new BufferElementCount(1024); var desc = DescriptorUtils.ImmutableIndexBufferUShort(count); var expected = new BufferDescription() { BindFlags = BindFlags.IndexBuffer, CpuAccessFlags = CpuAccessFlags.None, OptionFlags = ResourceOptionFlags.None, SizeInBytes = count * sizeof(ushort), StructureByteStride = sizeof(ushort), Usage = ResourceUsage.Immutable }; Assert.AreEqual(desc, expected); }
/// <summary> /// Builds a counter view, so buffer can be used with IncrementCounter /// </summary> /// <param name="elementCount">Element count</param> /// <returns>View decription</returns> public static UnorderedAccessViewDescription CounterStructuredBufferView(BufferElementCount elementCount) { if (elementCount < 1) throw new ArgumentOutOfRangeException("elementCount", "We should have at least one element"); return new UnorderedAccessViewDescription() { Format = SharpDX.DXGI.Format.Unknown, Dimension = UnorderedAccessViewDimension.Buffer, Buffer = new UnorderedAccessViewDescription.BufferResource() { ElementCount = elementCount, FirstElement = 0, Flags = UnorderedAccessViewBufferFlags.Counter } }; }
/// <summary> /// Builds an appendable view, so buffer can be used as Append/Consume buffer /// </summary> /// <param name="elementCount">Element count</param> /// <returns>View decription</returns> public static UnorderedAccessViewDescription AppendStructuredBufferView(BufferElementCount elementCount) { if (elementCount < 1) { throw new ArgumentOutOfRangeException("elementCount", "We should have at least one element"); } return(new UnorderedAccessViewDescription() { Format = SharpDX.DXGI.Format.Unknown, Dimension = UnorderedAccessViewDimension.Buffer, Buffer = new UnorderedAccessViewDescription.BufferResource() { ElementCount = elementCount, FirstElement = 0, Flags = UnorderedAccessViewBufferFlags.Append } }); }
public void NegativeValidTest() { Assert.AreEqual(BufferElementCount.IsValid(-5), false); }
public void ZeroValidTest() { Assert.AreEqual(BufferElementCount.IsValid(0), false); }
public void StaticValidTest() { Assert.AreEqual(BufferElementCount.IsValid(32), true); }
public void NegativeTest() { BufferElementCount count = new BufferElementCount(-2); }
public void ZeroTest() { BufferElementCount count = new BufferElementCount(0); }