Ejemplo n.º 1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="device">Direct3D11 Device</param>
        /// <param name="maxBodyCount">Maximum body count</param>
        public JointTableIndexBuffer(Device device, int maxBodyCount)
        {
            if (device == null)
            {
                throw new ArgumentNullException("device");
            }

            uint[] data = JointDataTable.RepeatTableUInt(maxBodyCount);
            var    desc = DescriptorUtils.ImmutableIndexBufferUint(new BufferElementCount(data.Length));

            fixed(uint *ptr = &data[0])
            {
                DataStream ds = new DataStream(new IntPtr(ptr), data.Length * sizeof(uint), true, true);

                this.buffer = new SharpDX.Direct3D11.Buffer(device, ds, desc);
            }
        }
        public void ImmutableTestUInt()
        {
            BufferElementCount count = new BufferElementCount(1024);
            var desc = DescriptorUtils.ImmutableIndexBufferUint(count);

            var expected = new BufferDescription()
            {
                BindFlags           = BindFlags.IndexBuffer,
                CpuAccessFlags      = CpuAccessFlags.None,
                OptionFlags         = ResourceOptionFlags.None,
                SizeInBytes         = count * sizeof(uint),
                StructureByteStride = sizeof(uint),
                Usage = ResourceUsage.Immutable
            };

            Assert.AreEqual(desc, expected);
        }