/* * Global macros * * Copyright (C) 2018 by Sascha Willems - www.saschawillems.de * * This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) */ #pragma once #include "vulkan/vulkan.h" #if defined(__ANDROID__) #define VK_CHECK_RESULT(f) \ { \ VkResult res = (f); \ if (res != VK_SUCCESS) \ { \ LOGE("Fatal : VkResult is \" %d \" in %s at line %d", res, __FILE__, __LINE__); \ assert(res == VK_SUCCESS); \ } \ } #else #define VK_CHECK_RESULT(f) \ { \ VkResult res = (f); \ if (res != VK_SUCCESS) \ { \ std::cout << "Fatal : VkResult is \"" << res << "\" in " << __FILE__ << " at line " << __LINE__ << std::endl; \ assert(res == VK_SUCCESS); \ } \ } #endif #define GET_INSTANCE_PROC_ADDR(inst, entrypoint) \ { \ fp##entrypoint = reinterpret_cast(vkGetInstanceProcAddr(inst, "vk"#entrypoint)); \ if (fp##entrypoint == NULL) \ { \ exit(1); \ } \ } #define GET_DEVICE_PROC_ADDR(dev, entrypoint) \ { \ fp##entrypoint = reinterpret_cast(vkGetDeviceProcAddr(dev, "vk"#entrypoint)); \ if (fp##entrypoint == NULL) \ { \ exit(1); \ } \ }