Struct GPUBufferDescription
A common description for all GPU buffers.
Assembly: FlaxEngine.dll
File: Engine/Graphics/GPUBufferDescription.h
Syntax
public struct GPUBufferDescription
Constructors
DEPRECATED("Use Vertex with vertex layout parameter instead")
Creates vertex buffer description. [Deprecated in v1.10]
Declaration
public DEPRECATED("Use Vertex with vertex layout parameter instead") static GPUBufferDescription Vertex(int32 elementStride
Parameters
"Use Vertex with vertex layout parameter instead"
GPUBufferDescription_DEPRECATED__Use_Vertex_with_vertex_layout_parameter_instead__
|
Fields
data
Declaration
public int32 void* data{
return Buffer(elementsCount* elementStride, GPUBufferFlags::VertexBuffer, PixelFormat::Unknown, data, elementStride, GPUResourceUsage::Default)
Field Value
int32 void
|
elementsCount
Declaration
public int32 elementsCount
Field Value
int32
|
Flags
Format
InitData
The pointer to location of initial resource data. Null if not used.
Declaration
public void* InitData
Field Value
void
|
Size
The buffer total size.
Declaration
public uint32 Size
Field Value
uint32
|
Stride
The buffer structure stride (size in bytes per element).
Declaration
public uint32 Stride
Field Value
uint32
|
Usage
Value that identifies how the buffer is to be read from and written to. The most common value is GPUResourceUsage.Default; see GPUResourceUsage for all possible values.
Declaration
public GPUResourceUsage Usage
Field Value
GPUResourceUsage
|
usage
Declaration
public int32 GPUResourceUsage usage
Field Value
int32 GPUResourceUsage
|
VertexLayout
The vertex elements layout used by vertex buffers only.
Declaration
public GPUVertexLayout* VertexLayout
Field Value
GPUVertexLayout
|
Methods
Buffer(uint32 size, GPUBufferFlags flags, PixelFormat format=PixelFormat::Unknown, const void* initData=nullptr, uint32 stride = 0, GPUResourceUsage usage=GPUResourceUsage::Default)
Creates the buffer description.
Declaration
public static GPUBufferDescription Buffer(uint32 size, GPUBufferFlags flags, PixelFormat format=PixelFormat::Unknown, const void* initData=nullptr, uint32 stride = 0, GPUResourceUsage usage=GPUResourceUsage::Default)
Parameters
uint32
size
The size (in bytes). |
GPUBufferFlags
flags
The flags. |
PixelFormat
format
The format. |
void
initData
The initial data. |
uint32
stride
The stride. |
GPUResourceUsage
usage
The usage. |
Returns
GPUBufferDescription
The buffer description. |
Equals(const GPUBufferDescription& other)
Declaration
public bool Equals(const GPUBufferDescription& other) const
Parameters
GPUBufferDescription
other
|
Returns
bool
|
GetElementsCount()
Gets the number elements in the buffer.
Declaration
public uint32 GetElementsCount() const
Returns
uint32
|
IsShaderResource()
Gets a value indicating whether this instance is a shader resource.
Declaration
public bool IsShaderResource() const
Returns
bool
|
IsUnorderedAccess()
Gets a value indicating whether this instance is a unordered access.
Declaration
public bool IsUnorderedAccess() const
Returns
bool
|
operator!=(const GPUBufferDescription& other)
Declaration
public bool operator!=(const GPUBufferDescription& other) const
Parameters
GPUBufferDescription
other
|
Returns
bool
|
operator==(const GPUBufferDescription& other)
Declaration
public bool operator==(const GPUBufferDescription& other) const
Parameters
GPUBufferDescription
other
|
Returns
bool
|
ToStaging()
ToStagingReadback()
ToStagingUpload()
ToString()
Typed(const void* data, int32 count, PixelFormat viewFormat, bool isUnorderedAccess=false, GPUResourceUsage usage=GPUResourceUsage::Default)
Creates typed buffer description.
Example in HLSL: Buffer<float4>.
Declaration
public static GPUBufferDescription Typed(const void* data, int32 count, PixelFormat viewFormat, bool isUnorderedAccess=false, GPUResourceUsage usage=GPUResourceUsage::Default)
Parameters
void
data
The data. |
int32
count
The elements count. |
PixelFormat
viewFormat
The view format. |
bool
isUnorderedAccess
True if use UAV, otherwise false. |
GPUResourceUsage
usage
The usage. |
Returns
GPUBufferDescription
The buffer description. |
Typed(int32 count, PixelFormat viewFormat, bool isUnorderedAccess=false, GPUResourceUsage usage=GPUResourceUsage::Default)
Creates typed buffer description.
Example in HLSL: Buffer<float4>.
Declaration
public static GPUBufferDescription Typed(int32 count, PixelFormat viewFormat, bool isUnorderedAccess=false, GPUResourceUsage usage=GPUResourceUsage::Default)
Parameters
int32
count
The elements count. |
PixelFormat
viewFormat
The view format. |
bool
isUnorderedAccess
True if use UAV, otherwise false. |
GPUResourceUsage
usage
The usage. |
Returns
GPUBufferDescription
The buffer description. |
Vertex(GPUVertexLayout* layout, uint32 elementsCount, const void* data)
Creates vertex buffer description.
Declaration
public static GPUBufferDescription Vertex(GPUVertexLayout* layout, uint32 elementsCount, const void* data)
Parameters
GPUVertexLayout
layout
The vertex buffer layout. |
uint32
elementsCount
The elements count. |
void
data
The data. |
Returns
GPUBufferDescription
The buffer description. |
Vertex(GPUVertexLayout* layout, uint32 elementsCount, GPUResourceUsage usage=GPUResourceUsage::Default)
Creates vertex buffer description.
Declaration
public static GPUBufferDescription Vertex(GPUVertexLayout* layout, uint32 elementsCount, GPUResourceUsage usage=GPUResourceUsage::Default)
Parameters
GPUVertexLayout
layout
The vertex buffer layout. |
uint32
elementsCount
The elements count. |
GPUResourceUsage
usage
The usage mode. |
Returns
GPUBufferDescription
The buffer description. |
Vertex(GPUVertexLayout* layout, uint32 elementStride, uint32 elementsCount, const void* data)
Creates vertex buffer description.
Declaration
public static GPUBufferDescription Vertex(GPUVertexLayout* layout, uint32 elementStride, uint32 elementsCount, const void* data)
Parameters
GPUVertexLayout
layout
The vertex buffer layout. |
uint32
elementStride
The element stride. |
uint32
elementsCount
The elements count. |
void
data
The data. |
Returns
GPUBufferDescription
The buffer description. |
Vertex(GPUVertexLayout* layout, uint32 elementStride, uint32 elementsCount, GPUResourceUsage usage=GPUResourceUsage::Default)
Creates vertex buffer description.
Declaration
public static GPUBufferDescription Vertex(GPUVertexLayout* layout, uint32 elementStride, uint32 elementsCount, GPUResourceUsage usage=GPUResourceUsage::Default)
Parameters
GPUVertexLayout
layout
The vertex buffer layout. |
uint32
elementStride
The element stride. |
uint32
elementsCount
The elements count. |
GPUResourceUsage
usage
The usage mode. |
Returns
GPUBufferDescription
The buffer description. |