【问题标题】:What is the purpose of stype field? [duplicate]stype 字段的用途是什么? [复制]
【发布时间】:2017-03-05 10:26:52
【问题描述】:

在 Vulkan 中,某些函数需要您传递包含各种参数的结构。其中一个字段名为stype,需要设置为它的结构类型。

stype的用法示例:

VkInstanceCreateInfo info;
info.stype = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
...
VkInstance instance;
vkCreateInstance(&info, nullptr, &instance);

函数vkCreateInstance 接受const VkInstanceCreateInfo* 作为参数,那么stype 字段的意义何在?他们通过添加字段解决了哪些问题?

【问题讨论】:

  • 可能是为了让更高版本的 API 可以向结构中添加字段。您在该字段中输入的值告诉 vulkan 您正在使用哪个版本的结构,因此它知道哪些字段确实存在。

标签: c++ api conventions vulkan


【解决方案1】:

这样未来的版本可以通过更改类型来更新结构,而无需新的入口点。

但目前它用于通过 pNext 链表找到的扩展结构。并且使所有结构都具有这样的统一布局并不需要任何成本。实现可以简单地忽略第一个字段并假设它是正确的。

【讨论】:

    【解决方案2】:

    来自https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstanceCreateInfo.html

    sType 用于描述结构的类型。它必须在每个结构中填写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 2012-04-04
      • 2019-04-23
      • 1970-01-01
      • 2018-01-12
      相关资源
      最近更新 更多