Castor3D 0.12.0
Multiplatform 3D engine
|
#include <RenderQuad.hpp>
Fonctions membres publiques | |
virtual C3D_API | ~RenderQuad () |
C3D_API | RenderQuad (RenderQuad &&rhs) noexcept |
C3D_API void | cleanup () |
Nettoie les objets GPU. Plus de détails... | |
C3D_API void | createPipeline (VkExtent2D const &size, castor::Position const &position, 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, bool invertY=false) |
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 (VkExtent2D const &size, castor::Position const &position, 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 |
Fonctions membres publiques statiques | |
static C3D_API ashes::WriteDescriptorSet | makeDescriptorWrite (VkImageView const &view, VkSampler 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 C3D_API 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 C3D_API 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 | RenderQuad (RenderDevice const &device, castor::String const &name, VkFilter samplerFilter, rq::Config config) |
Constructeur. Plus de détails... | |
Attributs protégés | |
RenderSystem & | m_renderSystem |
RenderDevice const & | m_device |
SamplerResPtr | m_sampler |
rq::ConfigData | m_config |
Amis | |
template<typename ConfigT , typename BuilderT > | |
class | RenderQuadBuilderT |
|
protected |
Constructeur.
[in] | device | Le RenderDevice. |
[in] | name | Le nom de la passe. |
[in] | samplerFilter | Le filtre d'échantillonnage pour la texture source. |
[in] | config | La configuration. |
|
virtual |
|
explicitnoexcept |
C3D_API void castor3d::RenderQuad::cleanup | ( | ) |
Nettoie les objets GPU.
C3D_API void castor3d::RenderQuad::createPipeline | ( | VkExtent2D const & | size, |
castor::Position const & | position, | ||
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] | size | Les dimensions de rendu. |
[in] | position | La position du 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. |
C3D_API void castor3d::RenderQuad::createPipelineAndPass | ( | VkExtent2D const & | size, |
castor::Position const & | position, | ||
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] | size | Les dimensions de rendu. |
[in] | position | La position du rendu. |
[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 |
Références m_renderSystem.
C3D_API void castor3d::RenderQuad::initialisePasses | ( | ) |
Crée les descriptor sets pour toute les passes enregistrées.
|
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 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 makeDescriptorWrite().
|
static |
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. |
|
static |
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. |
|
static |
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. |
|
static |
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. |
|
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::UniformBufferOffsetT< DataT >::getDescriptorWrite().
|
static |
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érencé par makeDescriptorWrite().
|
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::RenderQuad::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().
C3D_API void castor3d::RenderQuad::registerPassInputs | ( | ashes::WriteDescriptorSetArray const & | writes, |
bool | invertY = false |
||
) |
Crée les entrées pour une passe.
[in] | writes | Les descriptor writes de la passe. |
[in] | invertY | true pour inverser le Y de l'image échantillonnée. |
|
friend |
|
protected |
|
protected |
Référencé par getDevice().
|
protected |
Référencé par getRenderSystem().
|
protected |
Référencé par getSampler().