Browse Source

Vk: doc++ for CommandBuffer

Signed-off-by: Squareys <squareys@googlemail.com>
pull/202/head
Squareys 10 years ago committed by Squareys
parent
commit
7fbacd285f
  1. 38
      src/Magnum/Vk/CommandBuffer.h

38
src/Magnum/Vk/CommandBuffer.h

@ -43,19 +43,37 @@ namespace Magnum { namespace Vk {
class CommandPool; class CommandPool;
/**
* Command buffer
*
* Wraps @st_vk{CommandBuffer}.
*
*/
class MAGNUM_VK_EXPORT CommandBuffer { class MAGNUM_VK_EXPORT CommandBuffer {
public: public:
/**
* Command buffer level
*/
enum class Level: Int { enum class Level: Int {
Primary = VK_COMMAND_BUFFER_LEVEL_PRIMARY, Primary = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
Secondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY Secondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
}; };
/**
* Subpass contents
*/
enum class SubpassContents: UnsignedInt { enum class SubpassContents: UnsignedInt {
Inline = VK_SUBPASS_CONTENTS_INLINE, Inline = VK_SUBPASS_CONTENTS_INLINE,
SecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, SecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
}; };
/**
* Constructor
*
* @param buffer @st_vk{CommandBuffer} to wrap
* @param commandPool pool this command buffer was allocated from
*/
CommandBuffer(VkCommandBuffer buffer, CommandPool& commandPool): CommandBuffer(VkCommandBuffer buffer, CommandPool& commandPool):
_cmdBuffer{buffer}, _cmdBuffer{buffer},
_pool{commandPool} _pool{commandPool}
@ -85,6 +103,11 @@ class MAGNUM_VK_EXPORT CommandBuffer {
return _cmdBuffer; return _cmdBuffer;
} }
/**
* Begin recording to this command buffer.
*
* @return Reference to self (for method chaining)
*/
CommandBuffer& begin() { CommandBuffer& begin() {
VkCommandBufferBeginInfo cmdBufInfo = {}; VkCommandBufferBeginInfo cmdBufInfo = {};
cmdBufInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; cmdBufInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
@ -93,6 +116,11 @@ class MAGNUM_VK_EXPORT CommandBuffer {
return *this; return *this;
} }
/**
* End recording to this command buffer.
*
* @return Reference to self (for method chaining)
*/
CommandBuffer& end() { CommandBuffer& end() {
VkResult err = vkEndCommandBuffer(_cmdBuffer); VkResult err = vkEndCommandBuffer(_cmdBuffer);
MAGNUM_VK_ASSERT_ERROR(err); MAGNUM_VK_ASSERT_ERROR(err);
@ -100,6 +128,11 @@ class MAGNUM_VK_EXPORT CommandBuffer {
return *this; return *this;
} }
/**
* Begin a render pass on this command buffer.
*
* @return Reference to self (for method chaining)
*/
CommandBuffer& beginRenderPass(SubpassContents subpassContents, RenderPass& renderPass, CommandBuffer& beginRenderPass(SubpassContents subpassContents, RenderPass& renderPass,
Vk::Framebuffer& framebuffer, Range2Di renderArea, Vk::Framebuffer& framebuffer, Range2Di renderArea,
const std::vector<VkClearValue>& clearValues) { const std::vector<VkClearValue>& clearValues) {
@ -117,6 +150,11 @@ class MAGNUM_VK_EXPORT CommandBuffer {
return *this; return *this;
} }
/**
* End a render pass on this command buffer.
*
* @return Reference to self (for method chaining)
*/
CommandBuffer& endRenderPass() { CommandBuffer& endRenderPass() {
vkCmdEndRenderPass(_cmdBuffer); vkCmdEndRenderPass(_cmdBuffer);
return *this; return *this;

Loading…
Cancel
Save