public SharpDX.Direct3D11.Buffer CreateDynamicBuffer <T>(ref T range, int sizeInBytes) where T : struct { BufferStaticVerifications.CheckSizeInBytes(sizeInBytes); var des = new BufferDescription() { Usage = ResourceUsage.Dynamic, SizeInBytes = sizeInBytes, BindFlags = BindFlags.ConstantBuffer, CpuAccessFlags = CpuAccessFlags.Write, OptionFlags = ResourceOptionFlags.None, StructureByteStride = 0 }; return(SharpDX.Direct3D11.Buffer.Create(D3DDevice, ref range, des)); }
public SharpDX.Direct3D11.Buffer CreateUnorderedRWStructuredBuffer <T>(ref T[] range) where T : struct { BufferStaticVerifications.CheckSizeInBytes <T>(); var desc = new BufferDescription() { SizeInBytes = Unsafe.SizeOf <T>(), CpuAccessFlags = GetCpuAccessFlagsFromUsage(ResourceUsage.Default), Usage = ResourceUsage.Default, }; desc.OptionFlags |= ResourceOptionFlags.BufferStructured; desc.BindFlags = BindFlags.UnorderedAccess | BindFlags.ShaderResource; // We keep the element size in the structure byte stride, even if it is not a structured buffer desc.StructureByteStride = desc.SizeInBytes / range.Length; return(SharpDX.Direct3D11.Buffer.Create(D3DDevice, range, desc)); }
public SharpDX.Direct3D11.Buffer CreateBuffer <T>(ref T data, BufferDescription desc) where T : struct { BufferStaticVerifications.CheckSizeInBytes(desc.SizeInBytes); return(SharpDX.Direct3D11.Buffer.Create(D3DDevice, ref data, desc)); }
public SharpDX.Direct3D11.Buffer CreateBuffer <T>(BindFlags flags, ref T range) where T : struct { BufferStaticVerifications.CheckSizeInBytes <T>(); return(SharpDX.Direct3D11.Buffer.Create(D3DDevice, flags, ref range)); }