多个返回值Vulkan C ++函数头

时间:2017-07-06 13:17:31

标签: c++ vulkan

我正在阅读关于Vulkan API的教程。在我看来有一个函数声明3种返回类型。我不确定这是否是一个C ++特性或Vulkan独有的东西。

static VKAPI_ATTR VkBool32 VKAPI_CALL debugCallback(
  VkDebugReportFlagsEXT flags,
  VkDebugReportObjectTypeEXT objType,
  uint64_t obj,
  size_t location,
  int32_t code,
  const char* layerPrefix,
  const char* msg,
  void* userData) {
    std::cerr << "validation layer: " << msg << std::endl;

    return VK_FALSE;
}

我看到了这个stackoverflow answer,但它并没有真正解释这里发生了什么。

1 个答案:

答案 0 :(得分:0)

c / c ++编译器的一些实现接受不同函数和结构的某些属性,即函数的优化级别,或将其标记为特定目的。它们通常不会更改功能,但可能会添加或删除特殊代码或使用特殊调用约定或其他任何内容。因此,通常的做法是隐藏某些头文件中定义的属性int intros。

在您的情况下,VKAPI_ATTRVKAPI_CALL看起来都像Vulkan特有的宏。在其他实现中,它们被定义为什么都没有,但在你的情况下,它们可能有一些含义。检查头文件的定义。

最重要的是,只有单个返回类型VkBool32,其余只是属性。