作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我知道 VK_DEFINE_NON_DISPATCHABLE_HANDLE
是 struct object##_T *object
或 uint64_t object
,具体取决于架构。
我不理解的是为什么使用它以及它有什么好处和/或效果。
例如,如果我想从我的 VkShaderModule
获取 pCode
,为什么我不能直接访问 myShaderModule.pCode
?
最佳答案
在许多领域,Vulkan API 实现了不透明的句柄。从本质上讲,这意味着实现者几乎可以做任何他们想做的事情,并且在对象的内存布局甚至句柄是一个真正的指针方面不受任何与客户端的约束。
如果您想从VkShaderModule
中获取pCode
,我建议您在创建它时自己存储它,而不是依赖实现来为您存储它。
Vulkan 的目的是消除图形 API 的负担并消除膨胀。存储用户提供的数据并提供 API 来获取所述用户数据是膨胀的。如果你想保留这些东西,请将 VkShaderModules
映射到你想从 VkShaderModuleCreateInfo
中保留的任何参数。
关于c++ - VK_DEFINE_NON_DISPATCHABLE_HANDLE 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43741998/
我知道 VK_DEFINE_NON_DISPATCHABLE_HANDLE 是 struct object##_T *object 或 uint64_t object,具体取决于架构。 我不理解的是为
我是一名优秀的程序员,十分优秀!