Buffer Class
Namespace: Stride.GraphicsAssembly: Stride.Graphics.dll
All-in-One Buffer class linked SharpDX.Direct3D11.Buffer.
[DataSerializer(typeof(BufferSerializer))]
[DataSerializerGlobal(typeof(ReferenceSerializer<Buffer>), null, DataSerializerGenericMode.None, false, false, Profile = "Content")]
[ContentSerializer(typeof(DataContentSerializer<Buffer>))]
public class Buffer : GraphicsResource, IDisposable, IComponent, IReferencable, ICollectorHolder
              Remarks
This class is able to create constant buffers, indexelementCountrtex buffers, structured buffer, raw buffers, argument buffers.
| Name | Description | |
|---|---|---|
| Constructors | ||
| Buffer() | ||
| Buffer(GraphicsDevice) | Initializes a new instance of the Buffer class.  | 
                          |
| Fields | ||
| elementCount | ||
| Properties | ||
| Description | Gets the description of this buffer.  | 
                          |
| ElementCount | Gets the number of elements.  | 
                          |
| Flags | Buffer flags describing the type of buffer.  | 
                          |
| InitialCounterOffset | The initial Append/Consume buffer counter offset. A value of -1 indicates the current offset should be kept. Any other values set the hidden counter for that Appendable/Consumable Buffer. This value is only relevant for Buffers which have the 'Append' or 'Counter' flag, otherwise it is ignored. The value get's initialized to -1.  | 
                          |
| SizeInBytes | Gets the size of the buffer in bytes.  | 
                          |
| StructureByteStride | The size of the structure (in bytes) when it represents a structured/typed buffer.  | 
                          |
| Usage | Value that identifies how the buffer is to be read from and written to.  | 
                          |
| ViewFlags | Gets the type of this buffer view.  | 
                          |
| ViewFormat | Gets the format of this buffer view.  | 
                          |
| Methods | ||
| Clone() | Clones this instance.  | 
                          |
| GetData(CommandList, Buffer, DataPointer) | Copies the content of this buffer from GPU memory to a CPU memory using a specific staging resource.  | 
                          |
| GetData<TData>(CommandList) | Gets the content of this buffer to an array of data.  | 
                          |
| GetData<TData>(CommandList, ref TData) | Copies the content of this buffer to an array of data.  | 
                          |
| GetData<TData>(CommandList, TData[]) | Copies the content of this buffer to an array of data.  | 
                          |
| GetData<TData>(CommandList, Buffer, ref TData) | Copies the content of this buffer from GPU memory to an array of data on CPU memory using a specific staging resource.  | 
                          |
| GetData<TData>(CommandList, Buffer, TData[]) | Copies the content of this buffer from GPU memory to an array of data on CPU memory using a specific staging resource.  | 
                          |
| InitializeFromImpl(BufferDescription, BufferFlags, PixelFormat, IntPtr) | Initializes a new instance of the Buffer class.  | 
                          |
| New(GraphicsDevice, BufferDescription, PixelFormat) | Creates a new Buffer instance.  | 
                          |
| New(GraphicsDevice, DataPointer, Int32, BufferFlags, GraphicsResourceUsage) | Creates a new Buffer instance.  | 
                          |
| New(GraphicsDevice, DataPointer, Int32, BufferFlags, PixelFormat, GraphicsResourceUsage) | Creates a new Buffer instance.  | 
                          |
| New(GraphicsDevice, Byte[], Int32, BufferFlags, PixelFormat, GraphicsResourceUsage) | Creates a new Buffer instance from a byte array.  | 
                          |
| New(GraphicsDevice, Int32, BufferFlags, GraphicsResourceUsage) | Creates a new Buffer instance.  | 
                          |
| New(GraphicsDevice, Int32, BufferFlags, PixelFormat, GraphicsResourceUsage) | Creates a new Buffer instance.  | 
                          |
| New(GraphicsDevice, Int32, Int32, BufferFlags, GraphicsResourceUsage) | Creates a new Buffer instance.  | 
                          |
| New(GraphicsDevice, Int32, Int32, BufferFlags, PixelFormat, GraphicsResourceUsage) | Creates a new Buffer instance.  | 
                          |
| New<T>(GraphicsDevice, ref T, BufferFlags, GraphicsResourceUsage) | Creates a new Buffer instance.  | 
                          |
| New<T>(GraphicsDevice, ref T, BufferFlags, PixelFormat, GraphicsResourceUsage) | Creates a new Buffer instance.  | 
                          |
| New<T>(GraphicsDevice, T[], BufferFlags, GraphicsResourceUsage) | Creates a new Buffer instance.  | 
                          |
| New<T>(GraphicsDevice, T[], BufferFlags, PixelFormat, GraphicsResourceUsage) | Creates a new Buffer instance.  | 
                          |
| New<T>(GraphicsDevice, Int32, BufferFlags, GraphicsResourceUsage) | Creates a new Buffer instance.  | 
                          |
| OnDestroyed() | ||
| OnNameChanged() | ||
| OnRecreate() | Called when graphics device has been recreated.  | 
                          |
| Recreate(IntPtr) | Explicitly recreate buffer with given data. Usually called after a GraphicsDevice reset.  | 
                          |
| Recreate<T>(T[]) | Explicitly recreate buffer with given data. Usually called after a GraphicsDevice reset.  | 
                          |
| RecreateWith(IntPtr) | Reload Buffer from given data if GraphicsDevice has been reset.  | 
                          |
| RecreateWith<T>(T[]) | Reload Buffer from given data if GraphicsDevice has been reset.  | 
                          |
| SetData(CommandList, DataPointer, Int32) | Copies the content an array of data on CPU memory to this buffer into GPU memory.  | 
                          |
| SetData<TData>(CommandList, ref TData, Int32) | Copies the content an array of data on CPU memory to this buffer into GPU memory.  | 
                          |
| SetData<TData>(CommandList, TData[], Int32) | Copies the content an array of data on CPU memory to this buffer into GPU memory.  | 
                          |
| ToStaging() | Return an equivalent staging texture CPU read-writable from this instance.  | 
                          |
Constructors
Buffer()
public Buffer()
              Buffer(GraphicsDevice)
Initializes a new instance of the Buffer class.
protected Buffer(GraphicsDevice device)
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
Fields
elementCount
protected int elementCount
              Field Value
| Type | Description | 
|---|---|
| System.Int32 | 
Properties
Description
Gets the description of this buffer.
public BufferDescription Description { get; }
              Property Value
| Type | Description | 
|---|---|
| BufferDescription | 
ElementCount
Gets the number of elements.
public int ElementCount { get; protected set; }
              Property Value
| Type | Description | 
|---|---|
| System.Int32 | 
Remarks
This value is valid for structured buffers, raw buffers and index buffers that are used as a SharedResourceView.
Flags
Buffer flags describing the type of buffer.
public BufferFlags Flags { get; }
              Property Value
| Type | Description | 
|---|---|
| BufferFlags | 
InitialCounterOffset
The initial Append/Consume buffer counter offset. A value of -1 indicates the current offset should be kept. Any other values set the hidden counter for that Appendable/Consumable Buffer. This value is only relevant for Buffers which have the 'Append' or 'Counter' flag, otherwise it is ignored. The value get's initialized to -1.
public int InitialCounterOffset { get; set; }
              Property Value
| Type | Description | 
|---|---|
| System.Int32 | 
SizeInBytes
Gets the size of the buffer in bytes.
public int SizeInBytes { get; }
              Property Value
| Type | Description | 
|---|---|
| System.Int32 | The size of the buffer in bytes.  | 
                  
StructureByteStride
The size of the structure (in bytes) when it represents a structured/typed buffer.
public int StructureByteStride { get; }
              Property Value
| Type | Description | 
|---|---|
| System.Int32 | 
Usage
Value that identifies how the buffer is to be read from and written to.
public GraphicsResourceUsage Usage { get; }
              Property Value
| Type | Description | 
|---|---|
| GraphicsResourceUsage | 
ViewFlags
Gets the type of this buffer view.
public BufferFlags ViewFlags { get; }
              Property Value
| Type | Description | 
|---|---|
| BufferFlags | 
ViewFormat
Gets the format of this buffer view.
public PixelFormat ViewFormat { get; }
              Property Value
| Type | Description | 
|---|---|
| PixelFormat | 
Methods
Clone()
Clones this instance.
public Buffer Clone()
              Returns
| Type | Description | 
|---|---|
| Buffer | A clone of this instance  | 
                  
Remarks
This method will not copy the content of the buffer to the clone
GetData(CommandList, Buffer, DataPointer)
Copies the content of this buffer from GPU memory to a CPU memory using a specific staging resource.
public void GetData(CommandList commandList, Buffer stagingTexture, DataPointer toData)
              Parameters
| Type | Name | Description | 
|---|---|---|
| CommandList | commandList | |
| Buffer | stagingTexture | The staging buffer used to transfer the buffer.  | 
                  
| DataPointer | toData | To data pointer.  | 
                  
Remarks
This method is only working when called from the main thread that is accessing the main GraphicsDevice.
Exceptions
| Type | Condition | 
|---|---|
| System.ArgumentException | When strides is different from optimal strides, and TData is not the same size as the pixel format, or Width * Height != toData.Length  | 
                  
GetData<TData>(CommandList)
Gets the content of this buffer to an array of data.
public TData[] GetData<TData>(CommandList commandList)
    where TData : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| CommandList | commandList | 
Returns
| Type | Description | 
|---|---|
| TData[] | 
Type Parameters
| Name | Description | 
|---|---|
| TData | The type of the T data.  | 
                  
Remarks
This method is only working when called from the main thread that is accessing the main GraphicsDevice. This method creates internally a stagging resource if this texture is not already a stagging resouce, copies to it and map it to memory. Use method with explicit staging resource for optimal performances.
GetData<TData>(CommandList, ref TData)
Copies the content of this buffer to an array of data.
public void GetData<TData>(CommandList commandList, ref TData toData)
    where TData : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| CommandList | commandList | |
| TData | toData | The destination buffer to receive a copy of the texture datas.  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| TData | The type of the T data.  | 
                  
Remarks
This method is only working when called from the main thread that is accessing the main GraphicsDevice. This method creates internally a stagging resource if this texture is not already a stagging resouce, copies to it and map it to memory. Use method with explicit staging resource for optimal performances.
GetData<TData>(CommandList, TData[])
Copies the content of this buffer to an array of data.
public void GetData<TData>(CommandList commandList, TData[] toData)
    where TData : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| CommandList | commandList | |
| TData[] | toData | The destination buffer to receive a copy of the texture datas.  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| TData | The type of the T data.  | 
                  
Remarks
This method is only working when called from the main thread that is accessing the main GraphicsDevice. This method creates internally a stagging resource if this texture is not already a stagging resouce, copies to it and map it to memory. Use method with explicit staging resource for optimal performances.
GetData<TData>(CommandList, Buffer, ref TData)
Copies the content of this buffer from GPU memory to an array of data on CPU memory using a specific staging resource.
public void GetData<TData>(CommandList commandList, Buffer stagingTexture, ref TData toData)
    where TData : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| CommandList | commandList | |
| Buffer | stagingTexture | The staging buffer used to transfer the buffer.  | 
                  
| TData | toData | To data.  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| TData | The type of the T data.  | 
                  
Remarks
This method is only working when called from the main thread that is accessing the main GraphicsDevice.
Exceptions
| Type | Condition | 
|---|---|
| System.ArgumentException | When strides is different from optimal strides, and TData is not the same size as the pixel format, or Width * Height != toData.Length  | 
                  
GetData<TData>(CommandList, Buffer, TData[])
Copies the content of this buffer from GPU memory to an array of data on CPU memory using a specific staging resource.
public void GetData<TData>(CommandList commandList, Buffer stagingTexture, TData[] toData)
    where TData : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| CommandList | commandList | |
| Buffer | stagingTexture | The staging buffer used to transfer the buffer.  | 
                  
| TData[] | toData | To data.  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| TData | The type of the T data.  | 
                  
Remarks
This method is only working when called from the main thread that is accessing the main GraphicsDevice.
Exceptions
| Type | Condition | 
|---|---|
| System.ArgumentException | When strides is different from optimal strides, and TData is not the same size as the pixel format, or Width * Height != toData.Length  | 
                  
InitializeFromImpl(BufferDescription, BufferFlags, PixelFormat, IntPtr)
Initializes a new instance of the Buffer class.
protected Buffer InitializeFromImpl(BufferDescription description, BufferFlags viewFlags, PixelFormat viewFormat, IntPtr dataPointer)
              Parameters
| Type | Name | Description | 
|---|---|---|
| BufferDescription | description | The description.  | 
                  
| BufferFlags | viewFlags | Type of the buffer.  | 
                  
| PixelFormat | viewFormat | The view format.  | 
                  
| System.IntPtr | dataPointer | The data pointer.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer | 
New(GraphicsDevice, BufferDescription, PixelFormat)
Creates a new Buffer instance.
public static Buffer New(GraphicsDevice device, BufferDescription description, PixelFormat viewFormat = PixelFormat.None)
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| BufferDescription | description | The description of the buffer.  | 
                  
| PixelFormat | viewFormat | View format used if the buffer is used as a shared resource view.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer | An instance of a new Buffer  | 
                  
New(GraphicsDevice, DataPointer, Int32, BufferFlags, GraphicsResourceUsage)
Creates a new Buffer instance.
public static Buffer New(GraphicsDevice device, DataPointer dataPointer, int elementSize, BufferFlags bufferFlags, GraphicsResourceUsage usage = GraphicsResourceUsage.Default)
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| DataPointer | dataPointer | The data pointer.  | 
                  
| System.Int32 | elementSize | Size of the element.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer | An instance of a new Buffer  | 
                  
New(GraphicsDevice, DataPointer, Int32, BufferFlags, PixelFormat, GraphicsResourceUsage)
Creates a new Buffer instance.
public static Buffer New(GraphicsDevice device, DataPointer dataPointer, int elementSize, BufferFlags bufferFlags, PixelFormat viewFormat, GraphicsResourceUsage usage = GraphicsResourceUsage.Default)
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| DataPointer | dataPointer | The data pointer.  | 
                  
| System.Int32 | elementSize | Size of the element.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| PixelFormat | viewFormat | The view format must be specified if the buffer is declared as a shared resource view.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer | An instance of a new Buffer  | 
                  
New(GraphicsDevice, Byte[], Int32, BufferFlags, PixelFormat, GraphicsResourceUsage)
Creates a new Buffer instance from a byte array.
public static Buffer New(GraphicsDevice device, byte[] initialValue, int elementSize, BufferFlags bufferFlags, PixelFormat viewFormat = PixelFormat.None, GraphicsResourceUsage usage = GraphicsResourceUsage.Immutable)
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| System.Byte[] | initialValue | The initial value of this buffer.  | 
                  
| System.Int32 | elementSize | Size of an element. Must be equal to 2 or 4 for an index buffer, or to the size of a struct for a structured/typed buffer. Can be set to 0 for other buffers.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| PixelFormat | viewFormat | The view format must be specified if the buffer is declared as a shared resource view.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer | An instance of a new Buffer  | 
                  
New(GraphicsDevice, Int32, BufferFlags, GraphicsResourceUsage)
Creates a new Buffer instance.
public static Buffer New(GraphicsDevice device, int bufferSize, BufferFlags bufferFlags, GraphicsResourceUsage usage = GraphicsResourceUsage.Default)
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| System.Int32 | bufferSize | Size of the buffer in bytes.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer | An instance of a new Buffer  | 
                  
New(GraphicsDevice, Int32, BufferFlags, PixelFormat, GraphicsResourceUsage)
Creates a new Buffer instance.
public static Buffer New(GraphicsDevice device, int bufferSize, BufferFlags bufferFlags, PixelFormat viewFormat, GraphicsResourceUsage usage = GraphicsResourceUsage.Default)
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| System.Int32 | bufferSize | Size of the buffer in bytes.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| PixelFormat | viewFormat | The view format must be specified if the buffer is declared as a shared resource view.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer | An instance of a new Buffer  | 
                  
New(GraphicsDevice, Int32, Int32, BufferFlags, GraphicsResourceUsage)
Creates a new Buffer instance.
public static Buffer New(GraphicsDevice device, int bufferSize, int elementSize, BufferFlags bufferFlags, GraphicsResourceUsage usage = GraphicsResourceUsage.Default)
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| System.Int32 | bufferSize | Size of the buffer in bytes.  | 
                  
| System.Int32 | elementSize | Size of an element in the buffer.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer | An instance of a new Buffer  | 
                  
New(GraphicsDevice, Int32, Int32, BufferFlags, PixelFormat, GraphicsResourceUsage)
Creates a new Buffer instance.
public static Buffer New(GraphicsDevice device, int bufferSize, int elementSize, BufferFlags bufferFlags, PixelFormat viewFormat, GraphicsResourceUsage usage = GraphicsResourceUsage.Default)
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| System.Int32 | bufferSize | Size of the buffer in bytes.  | 
                  
| System.Int32 | elementSize | Size of an element in the buffer.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| PixelFormat | viewFormat | The view format must be specified if the buffer is declared as a shared resource view.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer | An instance of a new Buffer  | 
                  
New<T>(GraphicsDevice, ref T, BufferFlags, GraphicsResourceUsage)
Creates a new Buffer instance.
public static Buffer<T> New<T>(GraphicsDevice device, ref T value, BufferFlags bufferFlags, GraphicsResourceUsage usage = GraphicsResourceUsage.Default)
    where T : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| T | value | The initial value of this buffer.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer<T> | An instance of a new Buffer  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| T | Type of the buffer, to get the sizeof from.  | 
                  
New<T>(GraphicsDevice, ref T, BufferFlags, PixelFormat, GraphicsResourceUsage)
Creates a new Buffer instance.
public static Buffer<T> New<T>(GraphicsDevice device, ref T value, BufferFlags bufferFlags, PixelFormat viewFormat, GraphicsResourceUsage usage = GraphicsResourceUsage.Default)
    where T : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| T | value | The initial value of this buffer.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| PixelFormat | viewFormat | The view format must be specified if the buffer is declared as a shared resource view.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer<T> | An instance of a new Buffer  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| T | Type of the buffer, to get the sizeof from.  | 
                  
New<T>(GraphicsDevice, T[], BufferFlags, GraphicsResourceUsage)
Creates a new Buffer instance.
public static Buffer<T> New<T>(GraphicsDevice device, T[] initialValue, BufferFlags bufferFlags, GraphicsResourceUsage usage = GraphicsResourceUsage.Default)
    where T : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| T[] | initialValue | The initial value of this buffer.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer<T> | An instance of a new Buffer  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| T | Type of the buffer, to get the sizeof from.  | 
                  
New<T>(GraphicsDevice, T[], BufferFlags, PixelFormat, GraphicsResourceUsage)
Creates a new Buffer instance.
public static Buffer<T> New<T>(GraphicsDevice device, T[] initialValue, BufferFlags bufferFlags, PixelFormat viewFormat, GraphicsResourceUsage usage = GraphicsResourceUsage.Default)
    where T : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| T[] | initialValue | The initial value of this buffer.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| PixelFormat | viewFormat | The view format must be specified if the buffer is declared as a shared resource view.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer<T> | An instance of a new Buffer  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| T | Type of the buffer, to get the sizeof from.  | 
                  
New<T>(GraphicsDevice, Int32, BufferFlags, GraphicsResourceUsage)
Creates a new Buffer instance.
public static Buffer<T> New<T>(GraphicsDevice device, int elementCount, BufferFlags bufferFlags, GraphicsResourceUsage usage = GraphicsResourceUsage.Default)
    where T : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| GraphicsDevice | device | The GraphicsDevice.  | 
                  
| System.Int32 | elementCount | Number of T elment in this buffer.  | 
                  
| BufferFlags | bufferFlags | The buffer flags to specify the type of buffer.  | 
                  
| GraphicsResourceUsage | usage | The usage.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer<T> | An instance of a new Buffer  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| T | 
OnDestroyed()
protected override void OnDestroyed()
              Overrides
OnNameChanged()
protected override void OnNameChanged()
              Overrides
OnRecreate()
Called when graphics device has been recreated.
protected override bool OnRecreate()
              Returns
| Type | Description | 
|---|---|
| System.Boolean | True if item transitioned to a Active state.  | 
                  
Overrides
Recreate(IntPtr)
Explicitly recreate buffer with given data. Usually called after a GraphicsDevice reset.
public void Recreate(IntPtr dataPointer)
              Parameters
| Type | Name | Description | 
|---|---|---|
| System.IntPtr | dataPointer | 
Recreate<T>(T[])
Explicitly recreate buffer with given data. Usually called after a GraphicsDevice reset.
public void Recreate<T>(T[] dataPointer)
    where T : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| T[] | dataPointer | 
Type Parameters
| Name | Description | 
|---|---|
| T | 
RecreateWith(IntPtr)
Reload Buffer from given data if GraphicsDevice has been reset.
public Buffer RecreateWith(IntPtr dataPointer)
              Parameters
| Type | Name | Description | 
|---|---|---|
| System.IntPtr | dataPointer | The data pointer.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer | This instance.  | 
                  
RecreateWith<T>(T[])
Reload Buffer from given data if GraphicsDevice has been reset.
public Buffer RecreateWith<T>(T[] dataPointer)
    where T : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| T[] | dataPointer | The data pointer.  | 
                  
Returns
| Type | Description | 
|---|---|
| Buffer | This instance.  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| T | 
SetData(CommandList, DataPointer, Int32)
Copies the content an array of data on CPU memory to this buffer into GPU memory.
public void SetData(CommandList commandList, DataPointer fromData, int offsetInBytes = 0)
              Parameters
| Type | Name | Description | 
|---|---|---|
| CommandList | commandList | |
| DataPointer | fromData | A data pointer.  | 
                  
| System.Int32 | offsetInBytes | The offset in bytes to write to.  | 
                  
Remarks
See the unmanaged documentation about Map/UnMap for usage and restrictions.
Exceptions
| Type | Condition | 
|---|---|
| System.ArgumentException | 
SetData<TData>(CommandList, ref TData, Int32)
Copies the content an array of data on CPU memory to this buffer into GPU memory.
public void SetData<TData>(CommandList commandList, ref TData fromData, int offsetInBytes = 0)
    where TData : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| CommandList | commandList | |
| TData | fromData | The data to copy from.  | 
                  
| System.Int32 | offsetInBytes | The offset in bytes to write to.  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| TData | The type of the T data.  | 
                  
Remarks
See the unmanaged documentation about Map/UnMap for usage and restrictions.
Exceptions
| Type | Condition | 
|---|---|
| System.ArgumentException | 
SetData<TData>(CommandList, TData[], Int32)
Copies the content an array of data on CPU memory to this buffer into GPU memory.
public void SetData<TData>(CommandList commandList, TData[] fromData, int offsetInBytes = 0)
    where TData : struct
              Parameters
| Type | Name | Description | 
|---|---|---|
| CommandList | commandList | |
| TData[] | fromData | The data to copy from.  | 
                  
| System.Int32 | offsetInBytes | The offset in bytes to write to.  | 
                  
Type Parameters
| Name | Description | 
|---|---|
| TData | The type of the T data.  | 
                  
Remarks
See the unmanaged documentation about Map/UnMap for usage and restrictions.
Exceptions
| Type | Condition | 
|---|---|
| System.ArgumentException | 
ToStaging()
Return an equivalent staging texture CPU read-writable from this instance.
public Buffer ToStaging()
              Returns
| Type | Description | 
|---|---|
| Buffer | A new instance of this buffer as a staging resource  |