Castor3D
0.11.0
Multiplatform 3D engine
|
Fonctions membres publiques | |
virtual C3D_API | ~RenderGrid () |
C3D_API | RenderGrid (RenderGrid &&rhs) noexcept |
C3D_API void | cleanup () |
Nettoie les objets GPU. Plus de détails... | |
C3D_API void | createPipeline (ashes::PipelineShaderStageCreateInfoArray const &program, ashes::RenderPass const &renderPass, ashes::VkPushConstantRangeArray const &pushRanges=ashes::VkPushConstantRangeArray{}, ashes::PipelineDepthStencilStateCreateInfo dsState=ashes::PipelineDepthStencilStateCreateInfo{ 0u, VK_FALSE, VK_FALSE }) |
Crée le pipeline de rendu. Plus de détails... | |
C3D_API void | registerPassInputs (ashes::WriteDescriptorSetArray const &writes) |
Crée les entrées pour une passe. Plus de détails... | |
C3D_API void | initialisePasses () |
Crée les descriptor sets pour toute les passes enregistrées. Plus de détails... | |
C3D_API void | createPipelineAndPass (ashes::PipelineShaderStageCreateInfoArray const &program, ashes::RenderPass const &renderPass, ashes::WriteDescriptorSetArray const &writes, ashes::VkPushConstantRangeArray const &pushRanges=ashes::VkPushConstantRangeArray{}, ashes::PipelineDepthStencilStateCreateInfo dsState=ashes::PipelineDepthStencilStateCreateInfo{ 0u, false, false }) |
Crée le pipeline de rendu et initialise le quad pour une passe. Plus de détails... | |
C3D_API void | registerPass (ashes::CommandBuffer &commandBuffer, uint32_t descriptorSetIndex) const |
Prépare les commandes de dessin du quad, dans le tampon de commandes donné. Plus de détails... | |
void | registerPass (ashes::CommandBuffer &commandBuffer) const |
Prépare les commandes de dessin du quad, dans le tampon de commandes donné. Plus de détails... | |
RenderSystem * | getRenderSystem () const |
RenderDevice const & | getDevice () const |
Sampler const & | getSampler () const |
uint32_t | getGridSize () const |
Fonctions membres publiques statiques | |
static ashes::WriteDescriptorSet | makeDescriptorWrite (ashes::ImageView const &view, ashes::Sampler const &sampler, uint32_t dstBinding, uint32_t dstArrayElement=0u) |
Crée un descriptor write pour un sampler et une image combinés. Plus de détails... | |
static ashes::WriteDescriptorSet | makeDescriptorWrite (ashes::UniformBuffer const &buffer, uint32_t dstBinding, uint32_t elemOffset, uint32_t elemRange, uint32_t dstArrayElement=0u) |
Crée un descriptor write pour un uniform buffer. Plus de détails... | |
template<typename DataT > | |
static ashes::WriteDescriptorSet | makeDescriptorWrite (UniformBufferOffsetT< DataT > const &buffer, uint32_t dstBinding, uint32_t dstArrayElement=0u) |
Crée un descriptor write pour un intervalle d'uniform buffer. Plus de détails... | |
static C3D_API ashes::WriteDescriptorSet | makeDescriptorWrite (ashes::BufferBase const &storageBuffer, uint32_t dstBinding, uint32_t byteOffset, uint32_t byteRange, uint32_t dstArrayElement=0u) |
Crée un descriptor write pour un storage buffer. Plus de détails... | |
template<typename DataT > | |
static ashes::WriteDescriptorSet | makeDescriptorWrite (ashes::Buffer< DataT > const &storageBuffer, uint32_t dstBinding, uint32_t elemOffset, uint32_t elemRange, uint32_t dstArrayElement=0u) |
Crée un descriptor write pour un storage buffer. Plus de détails... | |
static C3D_API ashes::WriteDescriptorSet | makeDescriptorWrite (ashes::BufferBase const &buffer, ashes::BufferView const &view, uint32_t dstBinding, uint32_t dstArrayElement=0u) |
Crée un descriptor write pour une texel view sur un buffer. Plus de détails... | |
template<typename DataT > | |
static ashes::WriteDescriptorSet | makeDescriptorWrite (ashes::Buffer< DataT > const &buffer, ashes::BufferView const &view, uint32_t dstBinding, uint32_t dstArrayElement=0u) |
Crée un descriptor write pour une texel view sur un buffer. Plus de détails... | |
Fonctions membres protégées | |
C3D_API | RenderGrid (RenderDevice const &device, castor::String const &name, VkFilter samplerFilter, uint32_t gridSize, rq::Config config) |
Constructeur. Plus de détails... | |
Attributs protégés | |
RenderSystem & | m_renderSystem |
RenderDevice const & | m_device |
SamplerSPtr | m_sampler |
rq::ConfigData | m_config |
Amis | |
template<typename ConfigT , typename BuilderT > | |
class | RenderGridBuilderT |
|
protected |
Constructeur.
[in] | device | Le device GPU. |
[in] | name | Le nom de la passe. |
[in] | samplerFilter | Le filtre d'échantillonnage pour la texture source. |
[in] | gridSize | Les dimensions de la grille. |
[in] | config | La configuration. |
|
virtual |
|
explicitnoexcept |
C3D_API void castor3d::RenderGrid::cleanup | ( | ) |
Nettoie les objets GPU.
C3D_API void castor3d::RenderGrid::createPipeline | ( | ashes::PipelineShaderStageCreateInfoArray const & | program, |
ashes::RenderPass const & | renderPass, | ||
ashes::VkPushConstantRangeArray const & | pushRanges = ashes::VkPushConstantRangeArray{} , |
||
ashes::PipelineDepthStencilStateCreateInfo | dsState = ashes::PipelineDepthStencilStateCreateInfo{ 0u, VK_FALSE, VK_FALSE } |
||
) |
Crée le pipeline de rendu.
[in] | program | Le programme shader. |
[in] | renderPass | La passe de rendu à utiliser. |
[in] | pushRanges | Les intervalles de push constants. |
[in] | dsState | L'état de profondeur et stencil à utiliser. |
C3D_API void castor3d::RenderGrid::createPipelineAndPass | ( | ashes::PipelineShaderStageCreateInfoArray const & | program, |
ashes::RenderPass const & | renderPass, | ||
ashes::WriteDescriptorSetArray const & | writes, | ||
ashes::VkPushConstantRangeArray const & | pushRanges = ashes::VkPushConstantRangeArray{} , |
||
ashes::PipelineDepthStencilStateCreateInfo | dsState = ashes::PipelineDepthStencilStateCreateInfo{ 0u, false, false } |
||
) |
Crée le pipeline de rendu et initialise le quad pour une passe.
[in] | program | Le programme shader. |
[in] | renderPass | La passe de rendu à utiliser. |
[in] | writes | Les descriptor writes de la passe. |
[in] | pushRanges | Les intervalles de push constants. |
[in] | dsState | L'état de profondeur et stencil à utiliser. |
|
inline |
Références m_device.
|
inline |
|
inline |
Références m_renderSystem.
C3D_API void castor3d::RenderGrid::initialisePasses | ( | ) |
Crée les descriptor sets pour toute les passes enregistrées.
|
inlinestatic |
Crée un descriptor write pour un sampler et une image combinés.
[in] | view | La vue sur l'image. |
[in] | sampler | Le sampler. |
[in] | dstBinding | Le binding dans le descriptor set. |
[in] | dstArrayElement | L'indice dans le tableau d'éléments. |
Références castor3d::RenderQuad::makeDescriptorWrite().
|
inlinestatic |
Crée un descriptor write pour un uniform buffer.
[in] | buffer | L'uniform buffer. |
[in] | dstBinding | Le binding dans le descriptor set. |
[in] | elemOffset | L'offset, exprimé en nombre d'éléments. |
[in] | elemRange | L'intervalle, exprimé en nombre d'éléments. |
[in] | dstArrayElement | L'indice dans le tableau d'éléments. |
Références castor3d::RenderQuad::makeDescriptorWrite().
|
inlinestatic |
Crée un descriptor write pour un intervalle d'uniform buffer.
[in] | buffer | L'intervalle d'uniform buffer. |
[in] | dstBinding | Le binding dans le descriptor set. |
[in] | dstArrayElement | L'indice dans le tableau d'éléments. |
Références castor3d::RenderQuad::makeDescriptorWrite().
|
inlinestatic |
Crée un descriptor write pour un storage buffer.
[in] | storageBuffer | Le storage buffer. |
[in] | dstBinding | Le binding dans le descriptor set. |
[in] | byteOffset | L'offset, exprimé en octets. |
[in] | byteRange | L'intervalle, exprimé en octets. |
[in] | dstArrayElement | L'indice dans le tableau d'éléments. |
Références castor3d::RenderQuad::makeDescriptorWrite().
|
inlinestatic |
Crée un descriptor write pour un storage buffer.
[in] | storageBuffer | Le storage buffer. |
[in] | dstBinding | Le binding dans le descriptor set. |
[in] | elemOffset | L'offset, exprimé en nombre d'éléments. |
[in] | elemRange | L'intervalle, exprimé en nombre d'éléments. |
[in] | dstArrayElement | L'indice dans le tableau d'éléments. |
Références castor3d::RenderQuad::makeDescriptorWrite().
|
inlinestatic |
Crée un descriptor write pour une texel view sur un buffer.
[in] | buffer | Le buffer. |
[in] | view | La texel view. |
[in] | dstBinding | Le binding dans le descriptor set. |
[in] | dstArrayElement | L'indice dans le tableau d'éléments. |
Références castor3d::RenderQuad::makeDescriptorWrite().
|
inlinestatic |
Crée un descriptor write pour une texel view sur un buffer.
[in] | buffer | Le buffer. |
[in] | view | La texel view. |
[in] | dstBinding | Le binding dans le descriptor set. |
[in] | dstArrayElement | L'indice dans le tableau d'éléments. |
Références castor3d::RenderQuad::makeDescriptorWrite().
C3D_API void castor3d::RenderGrid::registerPass | ( | ashes::CommandBuffer & | commandBuffer, |
uint32_t | descriptorSetIndex | ||
) | const |
Prépare les commandes de dessin du quad, dans le tampon de commandes donné.
[in,out] | commandBuffer | Le tampon de commandes. |
[in] | descriptorSetIndex | L'indice du descriptor set. |
Référencé par registerPass().
|
inline |
Prépare les commandes de dessin du quad, dans le tampon de commandes donné.
[in,out] | commandBuffer | Le tampon de commandes. |
Références registerPass().
C3D_API void castor3d::RenderGrid::registerPassInputs | ( | ashes::WriteDescriptorSetArray const & | writes | ) |
Crée les entrées pour une passe.
[in] | writes | Les descriptor writes de la passe. |
|
friend |
|
protected |
|
protected |
Référencé par getDevice().
|
protected |
Référencé par getRenderSystem().
|
protected |
Référencé par getSampler().