Commit bc8cc5af by Shahbaz Youssefi Committed by Commit Bot

Vulkan: Implement vk::BufferView

Bug: angleproject:2958 Change-Id: I3f77e694638b4dc060d20a149c3f9c8aed3692d1 Reviewed-on: https://chromium-review.googlesource.com/c/1351114Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
parent 7fa8824b
...@@ -851,6 +851,23 @@ void Buffer::getMemoryRequirements(VkDevice device, VkMemoryRequirements *memory ...@@ -851,6 +851,23 @@ void Buffer::getMemoryRequirements(VkDevice device, VkMemoryRequirements *memory
vkGetBufferMemoryRequirements(device, mHandle, memoryRequirementsOut); vkGetBufferMemoryRequirements(device, mHandle, memoryRequirementsOut);
} }
// BufferView implementation.
BufferView::BufferView() {}
void BufferView::destroy(VkDevice device)
{
if (valid())
{
vkDestroyBufferView(device, mHandle, nullptr);
mHandle = VK_NULL_HANDLE;
}
}
VkResult BufferView::init(VkDevice device, const VkBufferViewCreateInfo &createInfo)
{
return vkCreateBufferView(device, &createInfo, nullptr, &mHandle);
}
// ShaderModule implementation. // ShaderModule implementation.
ShaderModule::ShaderModule() ShaderModule::ShaderModule()
{ {
......
...@@ -147,11 +147,11 @@ GetImplType<T> *GetImpl(const T *glObject) ...@@ -147,11 +147,11 @@ GetImplType<T> *GetImpl(const T *glObject)
// PhysicalDevice // PhysicalDevice
// Device // Device
// Queue // Queue
// BufferView
// DescriptorSet // DescriptorSet
#define ANGLE_HANDLE_TYPES_X(FUNC) \ #define ANGLE_HANDLE_TYPES_X(FUNC) \
FUNC(Buffer) \ FUNC(Buffer) \
FUNC(BufferView) \
FUNC(CommandBuffer) \ FUNC(CommandBuffer) \
FUNC(CommandPool) \ FUNC(CommandPool) \
FUNC(DescriptorPool) \ FUNC(DescriptorPool) \
...@@ -545,6 +545,15 @@ class Buffer final : public WrappedObject<Buffer, VkBuffer> ...@@ -545,6 +545,15 @@ class Buffer final : public WrappedObject<Buffer, VkBuffer>
void getMemoryRequirements(VkDevice device, VkMemoryRequirements *memoryRequirementsOut); void getMemoryRequirements(VkDevice device, VkMemoryRequirements *memoryRequirementsOut);
}; };
class BufferView final : public WrappedObject<BufferView, VkBufferView>
{
public:
BufferView();
void destroy(VkDevice device);
VkResult init(VkDevice device, const VkBufferViewCreateInfo &createInfo);
};
class ShaderModule final : public WrappedObject<ShaderModule, VkShaderModule> class ShaderModule final : public WrappedObject<ShaderModule, VkShaderModule>
{ {
public: public:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment