Esempio n. 1
0
        public void ValidTest()
        {
            BufferElementCount count = new BufferElementCount(25);
            int value = count;

            Assert.AreEqual(value, 25);
        }
Esempio n. 2
0
        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
     });
 }
Esempio n. 4
0
 /// <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
     });
 }
Esempio n. 5
0
 /// <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
                }
            };
        }
Esempio n. 10
0
        /// <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
                }
            });
        }
Esempio n. 11
0
 public void NegativeValidTest()
 {
     Assert.AreEqual(BufferElementCount.IsValid(-5), false);
 }
Esempio n. 12
0
 public void ZeroValidTest()
 {
     Assert.AreEqual(BufferElementCount.IsValid(0), false);
 }
Esempio n. 13
0
 public void StaticValidTest()
 {
     Assert.AreEqual(BufferElementCount.IsValid(32), true);
 }
Esempio n. 14
0
 public void NegativeTest()
 {
     BufferElementCount count = new BufferElementCount(-2);
 }
Esempio n. 15
0
 public void ZeroTest()
 {
     BufferElementCount count = new BufferElementCount(0);
 }