#include <ComputeParticleSystem.hpp>
|
C3D_API | ComputeParticleSystem (ParticleSystem &parent) |
| Constructor. More...
|
|
C3D_API bool | initialise (RenderDevice const &device) override |
| Initialises the implementation. More...
|
|
C3D_API void | cleanup (RenderDevice const &device) override |
| Cleans the implementation. More...
|
|
C3D_API void | update (CpuUpdater &updater) override |
| Updates the render pass, CPU wise. More...
|
|
C3D_API uint32_t | update (GpuUpdater &updater) override |
| Updates the render pass, CPU wise. More...
|
|
C3D_API void | addParticleVariable (castor::String const &name, ParticleFormat type, castor::String const &defaultValue) override |
| adds a particle variable. More...
|
|
C3D_API void | setUpdateProgram (ShaderProgramSPtr program) |
| Defines the program used to update the particles. More...
|
|
void | setGroupSizes (castor::Point3i sizes) |
| Defines the workgroup sizes, as defined inside the compute shader. More...
|
|
bool | hasUpdateProgram () const |
|
ShaderProgram const & | getUpdateProgram () const |
|
C3D_API | ParticleSystemImpl (Type type, ParticleSystem &parent) |
| Constructor. More...
|
|
virtual C3D_API | ~ParticleSystemImpl () |
| Destructor. More...
|
|
virtual C3D_API bool | initialise (RenderDevice const &device)=0 |
| Initialises the implementation. More...
|
|
virtual C3D_API void | cleanup (RenderDevice const &device)=0 |
| Cleans the implementation. More...
|
|
virtual C3D_API void | addParticleVariable (castor::String const &name, ParticleFormat type, castor::String const &defaultValue)=0 |
| adds a particle variable. More...
|
|
virtual C3D_API void | update (CpuUpdater &updater)=0 |
| Updates the render pass, CPU wise. More...
|
|
virtual C3D_API uint32_t | update (GpuUpdater &updater)=0 |
| Updates the render pass, GPU wise. More...
|
|
Type | getType () |
|
ParticleSystem const & | getParent () const |
|
◆ ComputeParticleSystem()
Constructor.
- Parameters
-
[in] | parent | The parent particle system. |
◆ addParticleVariable()
C3D_API void castor3d::ComputeParticleSystem::addParticleVariable |
( |
castor::String const & |
name, |
|
|
ParticleFormat |
type, |
|
|
castor::String const & |
defaultValue |
|
) |
| |
|
overridevirtual |
adds a particle variable.
- Parameters
-
[in] | name | The variable name. |
[in] | type | The variable type. |
[in] | defaultValue | The variable default value. |
Implements castor3d::ParticleSystemImpl.
◆ cleanup()
◆ getUpdateProgram()
ShaderProgram const & castor3d::ComputeParticleSystem::getUpdateProgram |
( |
| ) |
const |
|
inline |
- Returns
- The update program.
References m_program.
◆ hasUpdateProgram()
bool castor3d::ComputeParticleSystem::hasUpdateProgram |
( |
| ) |
const |
|
inline |
- Returns
false
if the update program has not been set.
References m_program.
◆ initialise()
◆ setGroupSizes()
void castor3d::ComputeParticleSystem::setGroupSizes |
( |
castor::Point3i |
sizes | ) |
|
|
inline |
Defines the workgroup sizes, as defined inside the compute shader.
- Parameters
-
References m_worgGroupSizes.
◆ setUpdateProgram()
C3D_API void castor3d::ComputeParticleSystem::setUpdateProgram |
( |
ShaderProgramSPtr |
program | ) |
|
Defines the program used to update the particles.
- Parameters
-
[in] | program | The shader program. |
◆ update() [1/2]
◆ update() [2/2]
◆ m_commandBuffer
ashes::CommandBufferPtr castor3d::ComputeParticleSystem::m_commandBuffer |
|
protected |
◆ m_descriptorLayout
ashes::DescriptorSetLayoutPtr castor3d::ComputeParticleSystem::m_descriptorLayout |
|
protected |
◆ m_descriptorPool
ashes::DescriptorSetPoolPtr castor3d::ComputeParticleSystem::m_descriptorPool |
|
protected |
◆ m_descriptorSets
std::array< ashes::DescriptorSetPtr, 2u > castor3d::ComputeParticleSystem::m_descriptorSets |
|
protected |
◆ m_fence
ashes::FencePtr castor3d::ComputeParticleSystem::m_fence |
|
protected |
◆ m_generatedCountBuffer
ashes::BufferPtr< uint32_t > castor3d::ComputeParticleSystem::m_generatedCountBuffer |
|
protected |
◆ m_in
uint32_t castor3d::ComputeParticleSystem::m_in { 0 } |
|
protected |
◆ m_inputs
◆ m_out
uint32_t castor3d::ComputeParticleSystem::m_out { 1 } |
|
protected |
◆ m_particlesCount
uint32_t castor3d::ComputeParticleSystem::m_particlesCount { 0u } |
|
protected |
◆ m_particlesStorages
std::array< ashes::BufferPtr< uint8_t >, 2 > castor3d::ComputeParticleSystem::m_particlesStorages |
|
protected |
◆ m_pipeline
ashes::ComputePipelinePtr castor3d::ComputeParticleSystem::m_pipeline |
|
protected |
◆ m_pipelineLayout
ashes::PipelineLayoutPtr castor3d::ComputeParticleSystem::m_pipelineLayout |
|
protected |
◆ m_program
ShaderProgramSPtr castor3d::ComputeParticleSystem::m_program |
|
protected |
◆ m_randomStorage
ashes::BufferPtr< castor::Point4f > castor3d::ComputeParticleSystem::m_randomStorage |
|
protected |
◆ m_ubo
◆ m_worgGroupSizes
castor::Point3i castor3d::ComputeParticleSystem::m_worgGroupSizes { 128, 1, 1 } |
|
protected |
The documentation for this class was generated from the following file: