test/binding: inherit views from NonDispHandle
This also assumes Vk{Buffer,Image,ColorAttachment,DepthStencil}View does not
require any VkDeviceMemory.
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index ecc6c71..d6862be 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -825,7 +825,7 @@
/* create image view */
view.image = obj();
m_textureView.init(*m_device, view);
- m_descriptorInfo.imageView = m_textureView.obj();
+ m_descriptorInfo.imageView = m_textureView.handle();
data = stagingImage.map();
@@ -906,7 +906,7 @@
view_info.range = allocationSize;
m_bufferView.init(*m_device, view_info);
- this->m_descriptorInfo.bufferView = m_bufferView.obj();
+ this->m_descriptorInfo.bufferView = m_bufferView.handle();
}
void VkConstantBufferObj::Bind(VkCmdBuffer cmdBuffer, VkDeviceSize offset, uint32_t binding)
@@ -1022,7 +1022,7 @@
view_info.range = allocationSize;
m_bufferView.init(*m_device, view_info);
- this->m_descriptorInfo.bufferView = m_bufferView.obj();
+ this->m_descriptorInfo.bufferView = m_bufferView.handle();
}
void VkIndexBufferObj::Bind(VkCmdBuffer cmdBuffer, VkDeviceSize offset)
@@ -1539,6 +1539,6 @@
view_info.image = obj();
m_attachmentView.init(*m_device, view_info);
- m_attachmentBindInfo.view = m_attachmentView.obj();
+ m_attachmentBindInfo.view = m_attachmentView.handle();
m_attachmentBindInfo.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
}
diff --git a/tests/vkrenderframework.h b/tests/vkrenderframework.h
index 5105495..9a82f3e 100644
--- a/tests/vkrenderframework.h
+++ b/tests/vkrenderframework.h
@@ -305,7 +305,7 @@
};
m_targetView.init(*m_device, createView);
}
- return m_targetView.obj();
+ return m_targetView.handle();
}
void SetLayout(VkCommandBufferObj *cmd_buf, VkImageAspect aspect, VkImageLayout image_layout);
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index 32a8e44..f24fdde 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -690,10 +690,11 @@
EXPECT(vkQueueBindSparseBufferMemory(queue, obj(), 1, &bindInfo) == VK_SUCCESS);
}
+NON_DISPATCHABLE_HANDLE_DTOR(BufferView, vkDestroyObject, VK_OBJECT_TYPE_BUFFER_VIEW)
+
void BufferView::init(const Device &dev, const VkBufferViewCreateInfo &info)
{
- DERIVED_OBJECT_TYPE_INIT(vkCreateBufferView, dev, VK_OBJECT_TYPE_BUFFER_VIEW, &info);
- alloc_memory();
+ NON_DISPATCHABLE_HANDLE_INIT(vkCreateBufferView, dev, &info);
}
void Image::init(const Device &dev, const VkImageCreateInfo &info)
@@ -751,16 +752,18 @@
VK_IMAGE_USAGE_DEPTH_STENCIL_BIT)));
}
+NON_DISPATCHABLE_HANDLE_DTOR(ImageView, vkDestroyObject, VK_OBJECT_TYPE_IMAGE_VIEW)
+
void ImageView::init(const Device &dev, const VkImageViewCreateInfo &info)
{
- DERIVED_OBJECT_TYPE_INIT(vkCreateImageView, dev, VK_OBJECT_TYPE_IMAGE_VIEW, &info);
- alloc_memory();
+ NON_DISPATCHABLE_HANDLE_INIT(vkCreateImageView, dev, &info);
}
+NON_DISPATCHABLE_HANDLE_DTOR(AttachmentView, vkDestroyObject, VK_OBJECT_TYPE_ATTACHMENT_VIEW)
+
void AttachmentView::init(const Device &dev, const VkAttachmentViewCreateInfo &info)
{
- DERIVED_OBJECT_TYPE_INIT(vkCreateAttachmentView, dev, VK_OBJECT_TYPE_ATTACHMENT_VIEW, &info);
- alloc_memory();
+ NON_DISPATCHABLE_HANDLE_INIT(vkCreateAttachmentView, dev, &info);
}
void ShaderModule::init(const Device &dev, const VkShaderModuleCreateInfo &info)
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 25268fb..bcdaa65 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -448,8 +448,10 @@
VkBufferCreateInfo create_info_;
};
-class BufferView : public DerivedObject<VkBufferView, Object, VK_OBJECT_TYPE_BUFFER_VIEW> {
+class BufferView : public internal::NonDispHandle<VkBufferView> {
public:
+ ~BufferView();
+
// vkCreateBufferView()
void init(const Device &dev, const VkBufferViewCreateInfo &info);
};
@@ -517,14 +519,19 @@
VkFlags format_features_;
};
-class ImageView : public DerivedObject<VkImageView, Object, VK_OBJECT_TYPE_IMAGE_VIEW> {
+class ImageView : public internal::NonDispHandle<VkImageView> {
public:
+ ~ImageView();
+
// vkCreateImageView()
void init(const Device &dev, const VkImageViewCreateInfo &info);
};
-class AttachmentView : public DerivedObject<VkAttachmentView, Object, VK_OBJECT_TYPE_ATTACHMENT_VIEW> {
+//class AttachmentView : public DerivedObject<VkAttachmentView, Object, VK_OBJECT_TYPE_ATTACHMENT_VIEW> {
+class AttachmentView : public internal::NonDispHandle<VkAttachmentView> {
public:
+ ~AttachmentView();
+
// vkCreateAttachmentView()
void init(const Device &dev, const VkAttachmentViewCreateInfo &info);
};