#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: