如何正确清洁Vulkan对象?

CJ_Notned

VkObjects是否需要为空,还是以某种方式自动解决?

  • 例如,当我有Buffer类作为包装
VkBuffer _buffer;

和这样的析构函数:

Buffer::~Buffer()
{
  vkDestroyBuffer(_device.getLogicalDevice(), _buffer, nullptr);
  if(_memory) {
    vkFreeMemory(_device.getLogicalDevice(), _memory, nullptr);
  }
}

调用析构函数后,是否需要将_buffer设置为VK_NULL_HANDLEnullptr,还是没有必要,这是自动完成的?

(基本上,我的问题是,在调用vkDestroyXYZ / vkFreeXYZ之后,规范是否处于对象实例处于哪种状态)

如果是,它适用于所有VkObjects(如VkInstanceVkImage等)或有一些例外?

我以为我可以保留原样(尤其是在它立即销毁后),还可以,但是我们在代码审查期间进入了讨论,可以说,我的审查员已为该对象设置了-pedantic和-Wall。为了我们的代码库,我必须承认:)

尼科尔·波拉斯(Nicol Bolas)

当您(正确)销毁了Vulkan对象时,该对象也将被销毁。到此为止。这与通过其指针销毁C ++中的对象没有什么不同:指向的对象不见了

指针值本身的操作由您自己决定(除了将其值作为输入传递给Vulkan API外,您当然不能这样做)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery如何清洁我自己的上传插件中的formData对象

来自分类Dev

jQuery如何清洁我自己的上传插件中的formData对象

来自分类Dev

如何清洁键盘

来自分类Dev

如何保持键盘清洁?

来自分类Dev

如何完成清洁横幅

来自分类Dev

如何正确复制对象

来自分类Dev

如何正确复制对象

来自分类Dev

如何清洁剪贴板?

来自分类Dev

如何了解VIPER清洁架构?

来自分类Dev

flywaydb:如何停止意外清洁

来自分类Dev

如何清洁剪贴板?

来自分类Dev

我如何清洁引导分区

来自分类Dev

如何正确使用对象数组

来自分类Dev

如何正确返回对象方法

来自分类Dev

如何正确释放ODBC对象?

来自分类Dev

如何正确映射对象数组

来自分类Dev

如何正确释放ODBC对象?

来自分类Dev

如何正确过滤键对象

来自分类Dev

AJAX中HTTP对象的更清洁语法?

来自分类Dev

Windows 10的“重置PC并清洁驱动器”是否正确清洁了驱动器?

来自分类Dev

使用CI时,如何保持环境清洁?

来自分类Dev

如何清洁HTML删除重复的段落?

来自分类Dev

运行后如何清洁毒物环境?

来自分类Dev

您应该如何清洁MacBook Pro?

来自分类Dev

我该如何清洁脏污位?

来自分类Dev

如何不做任何修改就清洁?

来自分类Dev

如何清洁stdout / stderr颜色输出

来自分类Dev

如何保持/ lib文件夹的清洁?

来自分类Dev

使用CI时,如何保持环境清洁?