diff --git a/VkCppGenerator.cpp b/VkCppGenerator.cpp index 2ac294f..efcb3af 100644 --- a/VkCppGenerator.cpp +++ b/VkCppGenerator.cpp @@ -603,7 +603,7 @@ size_t findTemplateIndex(CommandData const& commandData, std::map const & values ) const + template + void pushConstants( PipelineLayout layout, ShaderStageFlags stageFlags, uint32_t offset, std::vector const & values ) const { - vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, static_cast( values.size() ), values.data() ); + vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, static_cast( values.size() * sizeof( T ) ), reinterpret_cast( values.data() ) ); } - void pushConstant( PipelineLayout layout, ShaderStageFlags stageFlags, uint32_t offset, std::vector const & value ) const + template + void pushConstant( PipelineLayout layout, ShaderStageFlags stageFlags, uint32_t offset, T const & value ) const { - vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, 1, &value ); + vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, static_cast( sizeof( T ) ), reinterpret_cast( &value ) ); } #endif /*VKCPP_ENHANCED_MODE*/