コード例 #1
0
 public void Resize(int size)
 {
     m_Handle?.Dispose();
     m_Size             = size;
     m_Desc.SizeInBytes = m_Size;
     m_Handle           = new SharpDX.Direct3D11.Buffer(Context.Instance.Dev, m_Desc);
 }
コード例 #2
0
        public void SetPSUserUniformBuffer <T>(T data) where T : struct
        {
            D3D11.Buffer cbuffer = m_PSConstantBuffers[m_PSUserUniformBuffer.Register];
            DataBox      dataBox = Context.Instance.DevCon.MapSubresource(cbuffer, 0, D3D11.MapMode.WriteDiscard, D3D11.MapFlags.None);

            Utilities.Write(dataBox.DataPointer, ref data);
            Context.Instance.DevCon.UnmapSubresource(cbuffer, 0);
        }
コード例 #3
0
        public void SetPSSystemUniformBuffer <T>(T data, int slot) where T : struct
        {
            if (m_PSUserUniformBuffer != null)
            {
                Debug.Assert(slot != m_PSUserUniformBuffer.Register);
            }

            D3D11.Buffer cbuffer = m_PSConstantBuffers[slot];
            DataBox      dataBox = Context.Instance.DevCon.MapSubresource(cbuffer, 0, D3D11.MapMode.WriteDiscard, D3D11.MapFlags.None);

            Utilities.Write(dataBox.DataPointer, ref data);
            Context.Instance.DevCon.UnmapSubresource(cbuffer, 0);
        }
コード例 #4
0
        public unsafe IndexBuffer(uint[] data)
        {
            Count = data.Length;
            var desc = new D3D11.BufferDescription
            {
                Usage          = D3D11.ResourceUsage.Default,
                SizeInBytes    = sizeof(uint) * Count,
                BindFlags      = D3D11.BindFlags.IndexBuffer,
                CpuAccessFlags = D3D11.CpuAccessFlags.None,
                OptionFlags    = D3D11.ResourceOptionFlags.None
            };

            DataStream dataStream = new DataStream(desc.SizeInBytes, true, true);

            foreach (uint i in data)
            {
                dataStream.Write(i);
            }
            dataStream.Position = 0;

            m_Handle = new D3D11.Buffer(Context.Instance.Dev, dataStream, desc);
        }