ParticleBufferState Struct
Namespace: Stride.Particles.VertexLayoutsAssembly: Stride.Particles.dll
public struct ParticleBufferState
| Name | Description | |
|---|---|---|
| Constructors | ||
| ParticleBufferState(IntPtr, ParticleVertexBuilder) | ||
| Fields | ||
| CurrentParticleIndex | ||
| CurrentVertex | ||
| VertexBuffer | ||
| VertexBufferOrigin | ||
| VertexStride | ||
| VerticesPerSegCurrent | ||
| VerticesPerSegFirst | ||
| VerticesPerSegLast | ||
| VerticesPerSegMiddle | ||
| Properties | ||
| DefaultTexCoords | ||
| Methods | ||
| GetAccessor(AttributeDescription) | ||
| NextParticle() | Advances the pointer to the next particle in the buffer, so that its first vertex can be written |
|
| NextSegment() | Advances the pointer to the next segment in the buffer, so that its first vertex can be written |
|
| NextVertex() | Advances the pointer to the next vertex in the buffer, so that it can be written |
|
| SetAttribute(AttributeAccessor, IntPtr) | Sets the data for the current vertex using the provided AttributeAccessor |
|
| SetAttributePerParticle(AttributeAccessor, IntPtr) | Sets the same data for the all vertices in the current particle using the provided AttributeAccessor |
|
| SetAttributePerSegment(AttributeAccessor, IntPtr) | Sets the same data for the all vertices in the current particle using the provided AttributeAccessor |
|
| SetVerticesPerSegment(Int32, Int32, Int32) | Sets how many vertices are associated with the first, middle and last quad segments of the buffer. In case of billboards 1 segment = 1 quad but other shapes might be laid out differently |
|
| StartOver() | Moves the index to the beginning of the buffer so that the data can be filled from the first particle again |
|
| TransformAttributePerParticle<T, U>(AttributeAccessor, AttributeAccessor, IAttributeTransformer<T, U>, ref U) | ||
| TransformAttributePerSegment<T, U>(AttributeAccessor, AttributeAccessor, IAttributeTransformer<T, U>, ref U) | Transforms attribute data using already written data from another attribute |
|
Constructors
ParticleBufferState(IntPtr, ParticleVertexBuilder)
public ParticleBufferState(IntPtr vertexBufferPtr, ParticleVertexBuilder builder)
Parameters
| Type | Name | Description |
|---|---|---|
| System.IntPtr | vertexBufferPtr | |
| ParticleVertexBuilder | builder |
Fields
CurrentParticleIndex
public int CurrentParticleIndex
Field Value
| Type | Description |
|---|---|
| System.Int32 |
CurrentVertex
public int CurrentVertex
Field Value
| Type | Description |
|---|---|
| System.Int32 |
VertexBuffer
public IntPtr VertexBuffer
Field Value
| Type | Description |
|---|---|
| System.IntPtr |
VertexBufferOrigin
public readonly IntPtr VertexBufferOrigin
Field Value
| Type | Description |
|---|---|
| System.IntPtr |
VertexStride
public int VertexStride
Field Value
| Type | Description |
|---|---|
| System.Int32 |
VerticesPerSegCurrent
public int VerticesPerSegCurrent
Field Value
| Type | Description |
|---|---|
| System.Int32 |
VerticesPerSegFirst
public int VerticesPerSegFirst
Field Value
| Type | Description |
|---|---|
| System.Int32 |
VerticesPerSegLast
public int VerticesPerSegLast
Field Value
| Type | Description |
|---|---|
| System.Int32 |
VerticesPerSegMiddle
public int VerticesPerSegMiddle
Field Value
| Type | Description |
|---|---|
| System.Int32 |
Properties
DefaultTexCoords
public readonly AttributeDescription DefaultTexCoords { get; }
Property Value
| Type | Description |
|---|---|
| AttributeDescription |
Methods
GetAccessor(AttributeDescription)
public AttributeAccessor GetAccessor(AttributeDescription desc)
Parameters
| Type | Name | Description |
|---|---|---|
| AttributeDescription | desc |
Returns
| Type | Description |
|---|---|
| AttributeAccessor |
NextParticle()
Advances the pointer to the next particle in the buffer, so that its first vertex can be written
public void NextParticle()
NextSegment()
Advances the pointer to the next segment in the buffer, so that its first vertex can be written
public void NextSegment()
NextVertex()
Advances the pointer to the next vertex in the buffer, so that it can be written
public void NextVertex()
SetAttribute(AttributeAccessor, IntPtr)
Sets the data for the current vertex using the provided AttributeAccessor
public void SetAttribute(AttributeAccessor accessor, IntPtr ptrRef)
Parameters
| Type | Name | Description |
|---|---|---|
| AttributeAccessor | accessor | Accessor to the vertex data |
| System.IntPtr | ptrRef | Pointer to the source data |
SetAttributePerParticle(AttributeAccessor, IntPtr)
Sets the same data for the all vertices in the current particle using the provided AttributeAccessor
public void SetAttributePerParticle(AttributeAccessor accessor, IntPtr ptrRef)
Parameters
| Type | Name | Description |
|---|---|---|
| AttributeAccessor | accessor | Accessor to the vertex data |
| System.IntPtr | ptrRef | Pointer to the source data |
SetAttributePerSegment(AttributeAccessor, IntPtr)
Sets the same data for the all vertices in the current particle using the provided AttributeAccessor
public void SetAttributePerSegment(AttributeAccessor accessor, IntPtr ptrRef)
Parameters
| Type | Name | Description |
|---|---|---|
| AttributeAccessor | accessor | Accessor to the vertex data |
| System.IntPtr | ptrRef | Pointer to the source data |
SetVerticesPerSegment(Int32, Int32, Int32)
Sets how many vertices are associated with the first, middle and last quad segments of the buffer. In case of billboards 1 segment = 1 quad but other shapes might be laid out differently
public void SetVerticesPerSegment(int verticesForFirstSegment, int verticesForMiddleSegment, int verticesForLastSegment)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | verticesForFirstSegment | Number of vertices for the first segment |
| System.Int32 | verticesForMiddleSegment | Number of vertices for the middle segments |
| System.Int32 | verticesForLastSegment | Number of vertices for the last segment |
StartOver()
Moves the index to the beginning of the buffer so that the data can be filled from the first particle again
public void StartOver()
TransformAttributePerParticle<T, U>(AttributeAccessor, AttributeAccessor, IAttributeTransformer<T, U>, ref U)
public void TransformAttributePerParticle<T, U>(AttributeAccessor accessorFrom, AttributeAccessor accessorTo, IAttributeTransformer<T, U> transformMethod, ref U transformer)
where T : struct where U : struct
Parameters
| Type | Name | Description |
|---|---|---|
| AttributeAccessor | accessorFrom | |
| AttributeAccessor | accessorTo | |
| IAttributeTransformer<T, U> | transformMethod | |
| U | transformer |
Type Parameters
| Name | Description |
|---|---|
| T | |
| U |
TransformAttributePerSegment<T, U>(AttributeAccessor, AttributeAccessor, IAttributeTransformer<T, U>, ref U)
Transforms attribute data using already written data from another attribute
public void TransformAttributePerSegment<T, U>(AttributeAccessor accessorFrom, AttributeAccessor accessorTo, IAttributeTransformer<T, U> transformMethod, ref U transformer)
where T : struct where U : struct
Parameters
| Type | Name | Description |
|---|---|---|
| AttributeAccessor | accessorFrom | Vertex attribute accessor to the source attribute |
| AttributeAccessor | accessorTo | Vertex attribute accessor to the destination attribute |
| IAttributeTransformer<T, U> | transformMethod | Transform method for the type data |
| U | transformer |
Type Parameters
| Name | Description |
|---|---|
| T | Type data |
| U |