From 4d67b6d1a5b49947c9cfa3e5f70fc7195ea28029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20S=C3=BC=C3=9Fenbach?= Date: Mon, 11 Apr 2016 11:30:23 +0200 Subject: [PATCH] changed enhanced version of CommandBuffer::pushConstants to be templated by value type, corrected CommandBuffer::pushConstant to be templated by value type as well --- VkCppGenerator.cpp | 2 +- vulkan/vk_cpp.h | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) 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*/