13#include "vulkan/vulkan.h"
67 virtual void Bind()
const override;
75 virtual void UnBind()
const override;
110 void CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties,
111 VkBuffer& buffer, VkDeviceMemory& bufferMemory);
121 void CopyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size);
146 VkBuffer m_VertexBuffer;
147 VkDeviceMemory m_VertexBufferMemory;
186 virtual void Bind()
const override;
194 virtual void UnBind()
const override;
207 void CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties,
208 VkBuffer& buffer, VkDeviceMemory& bufferMemory);
218 void CopyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size);
227 virtual uint32_t
GetCount()
const override {
return m_Count; }
254 VkBuffer m_IndexBuffer;
255 VkDeviceMemory m_IndexBufferMemory;
299 void CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties,
300 VkBuffer& buffer, VkDeviceMemory& bufferMemory);
322 void BufferCreation();
324 virtual void UpdateCameraUniform()
override;
347 void UploadUniformBuffer(
size_t frameIndex)
override;
351 std::vector<VkBuffer> m_UniformBuffers;
352 std::vector<VkDeviceMemory> m_UniformBuffersMemory;
395 void CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties,
396 VkBuffer& buffer, VkDeviceMemory& bufferMemory);
398 const inline VkBuffer& GetBuffer()
const {
return m_StagingBuffer; }
425 VkPhysicalDevice m_PhysicalDevice;
426 VkBuffer m_StagingBuffer;
427 VkDeviceMemory m_StagingBufferMemory;
This file contains base classes for various kinds of buffers used by the Engine.
#define KARMA_API
Defining Karma's API macro for storage class information.
Definition Core.h:41
A format for vertex buffer say.
Definition Buffer.h:181
Manages Vulkan device resources and operations.
Definition VulkanDevice.h:33
Abstract class for image buffer.
Definition Buffer.h:329
An abstract class for index buffer.
Definition Buffer.h:313
An abstract class for vertex buffer.
Definition Buffer.h:296
VulkanImageBuffer(const char *filename)
Creates a GPU memory buffer for storing image texture.
Definition VulkanBuffer.cpp:320
int GetTextureHeight() const
Getter for the height (in pixels?) of the image texture.
Definition VulkanBuffer.h:413
int GetTextureWidth() const
Getter for the width (in pixels?) of the image texture.
Definition VulkanBuffer.h:406
void CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer &buffer, VkDeviceMemory &bufferMemory)
Creates Vulkan buffer (VKbuffer) for image texture's use and allocates device memory appropriately.
Definition VulkanBuffer.cpp:366
int GetTextureChannels() const
Getter for desired channels (if non-zero, # of image components requested in result).
Definition VulkanBuffer.h:421
virtual void Bind() const override
Not useful for Vulkan API atm.
Definition VulkanBuffer.cpp:215
VkBuffer GetIndexBuffer() const
Getter for indexbuffer.
Definition VulkanBuffer.h:234
void CopyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size)
Copy buffer.
Definition VulkanBuffer.cpp:154
virtual uint32_t GetCount() const override
Getter for the number of vertices to draw.
Definition VulkanBuffer.h:227
virtual void UnBind() const override
Not useful for Vulkan API atm.
Definition VulkanBuffer.cpp:219
void CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer &buffer, VkDeviceMemory &bufferMemory)
Actual creation of buffer using Vulkan API. Memory is also allocated appropriately.
Definition VulkanBuffer.cpp:188
size_t GetBufferSize()
Getter for indexbuffer size in bytes.
Definition VulkanBuffer.h:248
VulkanIndexBuffer(uint32_t *indices, uint32_t count)
Constructor.
Definition VulkanBuffer.cpp:119
VkDeviceMemory GetIndexBufferMemory() const
Getter for index buffer memory.
Definition VulkanBuffer.h:241
VkBuffer GetVertexBuffer() const
Getter for vertex buffer.
Definition VulkanBuffer.h:128
virtual void Bind() const override
Not useful for Vulkan API atm.
Definition VulkanBuffer.cpp:109
virtual void SetLayout(const BufferLayout &layout) override
Sets the layout of the vertexbuffer.
Definition VulkanBuffer.h:94
VulkanVertexBuffer(float *vertices, uint32_t size)
Constructor.
Definition VulkanBuffer.cpp:13
size_t GetBufferSize()
Getter for buffer size (in bytes).
Definition VulkanBuffer.h:140
VkDeviceMemory GetVertexBufferMemory() const
Getter for vertex buffer memory.
Definition VulkanBuffer.h:135
virtual const BufferLayout & GetLayout() const override
Getter for the layout of the vertex buffer.
Definition VulkanBuffer.h:82
virtual void UnBind() const override
Not useful for Vulkan API atm.
Definition VulkanBuffer.cpp:114