#include <ComputeParticleSystem.hpp>
|
C3D_API | ComputeParticleSystem (ParticleSystem &parent) |
| Constructeur.
|
|
C3D_API bool | initialise (RenderDevice const &device) override |
| Initialise l'implémentation.
|
|
C3D_API void | cleanup (RenderDevice const &device) override |
| Nettoie l'implémentation.
|
|
C3D_API void | update (CpuUpdater &updater) override |
| Met à jour la passe de rendu, au niveau CPU.
|
|
C3D_API uint32_t | update (GpuUpdater &updater) override |
| Met à jour la passe de rendu, au niveau CPU.
|
|
C3D_API void | addParticleVariable (castor::String const &name, ParticleFormat type, castor::String const &defaultValue) override |
| Ajoute une variable de particule.
|
|
C3D_API void | setUpdateProgram (ShaderProgramRPtr program) |
| Définit le programme utilisé pour mettre à jour les particules.
|
|
void | setGroupSizes (castor::Point3i sizes) |
| Définit les dimensions des groupes de travail, tels que définis dans le compute shader.
|
|
bool | hasUpdateProgram () const |
|
ShaderProgram const & | getUpdateProgram () const |
|
C3D_API | ParticleSystemImpl (Type type, ParticleSystem &parent) |
| Constructeur.
|
|
virtual C3D_API | ~ParticleSystemImpl () |
| Destructeur.
|
|
virtual C3D_API bool | initialise (RenderDevice const &device)=0 |
| Initialise l'implémentation.
|
|
virtual C3D_API void | cleanup (RenderDevice const &device)=0 |
| Nettoie l'implémentation.
|
|
virtual C3D_API void | addParticleVariable (castor::String const &name, ParticleFormat type, castor::String const &defaultValue)=0 |
| Ajoute une variable de particule.
|
|
virtual C3D_API void | update (CpuUpdater &updater)=0 |
| Met à jour la passe de rendu, au niveau CPU.
|
|
virtual C3D_API uint32_t | update (GpuUpdater &updater)=0 |
| Met à jour la passe de rendu, au niveau GPU.
|
|
Type | getType () |
|
ParticleSystem const & | getParent () const |
|
◆ ComputeParticleSystem()
Constructeur.
- Paramètres
-
[in] | parent | Le système de particules parent. |
◆ addParticleVariable()
C3D_API void castor3d::ComputeParticleSystem::addParticleVariable |
( |
castor::String const & |
name, |
|
|
ParticleFormat |
type, |
|
|
castor::String const & |
defaultValue |
|
) |
| |
|
overridevirtual |
Ajoute une variable de particule.
- Paramètres
-
[in] | name | Le nom de la variable. |
[in] | type | Le type de la variable. |
[in] | defaultValue | La valeur par défaut de la variable. |
Implémente castor3d::ParticleSystemImpl.
◆ cleanup()
◆ getUpdateProgram()
ShaderProgram const & castor3d::ComputeParticleSystem::getUpdateProgram |
( |
| ) |
const |
|
inline |
- Renvoie
- Le programme de mise à jour.
Références m_program.
◆ hasUpdateProgram()
bool castor3d::ComputeParticleSystem::hasUpdateProgram |
( |
| ) |
const |
|
inline |
- Renvoie
false
si le programme de mise à jour n'a pas été défini.
Références m_program.
◆ initialise()
◆ setGroupSizes()
void castor3d::ComputeParticleSystem::setGroupSizes |
( |
castor::Point3i |
sizes | ) |
|
|
inline |
Définit les dimensions des groupes de travail, tels que définis dans le compute shader.
- Paramètres
-
Références m_worgGroupSizes.
◆ setUpdateProgram()
C3D_API void castor3d::ComputeParticleSystem::setUpdateProgram |
( |
ShaderProgramRPtr |
program | ) |
|
Définit le programme utilisé pour mettre à jour les particules.
- Paramètres
-
[in] | program | Le programme shader. |
◆ 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
ShaderProgramRPtr castor3d::ComputeParticleSystem::m_program {} |
|
protected |
◆ m_ubo
◆ m_worgGroupSizes
castor::Point3i castor3d::ComputeParticleSystem::m_worgGroupSizes { 128, 1, 1 } |
|
protected |
La documentation de cette classe a été générée à partir du fichier suivant :