nngn
Loading...
Searching...
No Matches
types.h File Reference
#include "os/platform.h"
#include "utils/macros.h"
#include "utils/utils.h"
#include "vulkan.h"
Include dependency graph for types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  nngn
 
namespace  nngn::detail
 

Macros

#define NNGN_VK_TYPES(f)
 X-macro that operates on Vulkan types.
 
#define C(x, _)
 
#define X(x, n, c)   c(C, x, n)
 
#define C(x, n)
 
#define X(x, n, c)   c(C, x, n)
 
#define X(x, n, _)
 

Typedefs

template<typename T >
using nngn::vk_create_info_type = typename detail::vk_create_info_type_impl< T >::type
 Maps types to *CretaeInfo structures.
 

Functions

 nngn::detail::NNGN_APPLY2 (C, VkBuffer, BUFFER) NNGN_IGNORE2(C
 
COMMAND_BUFFER nngn::detail::NNGN_APPLY2 (C, VkCommandPool, COMMAND_POOL) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL nngn::detail::NNGN_IGNORE2 (C, VkDescriptorSet, DESCRIPTOR_SET) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT nngn::detail::NNGN_IGNORE2 (C, VkDeviceMemory, DEVICE_MEMORY) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE nngn::detail::NNGN_APPLY2 (C, VkFramebuffer, FRAMEBUFFER) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE nngn::detail::NNGN_APPLY2 (C, VkImageView, IMAGE_VIEW) NNGN_IGNORE2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE nngn::detail::NNGN_IGNORE2 (C, VkQueue, QUEUE) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE nngn::detail::NNGN_APPLY2 (C, VkPipelineLayout, PIPELINE_LAYOUT) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS nngn::detail::NNGN_APPLY2 (C, VkSampler, SAMPLER) NNGN_APPLY2(C
 
 nngn::NNGN_APPLY2 (C, VkBuffer, BUFFER) NNGN_IGNORE2(C
 
COMMAND_BUFFER nngn::NNGN_APPLY2 (C, VkCommandPool, COMMAND_POOL) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL nngn::NNGN_IGNORE2 (C, VkDescriptorSet, DESCRIPTOR_SET) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT nngn::NNGN_IGNORE2 (C, VkDeviceMemory, DEVICE_MEMORY) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE nngn::NNGN_APPLY2 (C, VkFramebuffer, FRAMEBUFFER) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE nngn::NNGN_APPLY2 (C, VkImageView, IMAGE_VIEW) NNGN_IGNORE2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE nngn::NNGN_IGNORE2 (C, VkQueue, QUEUE) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE nngn::NNGN_APPLY2 (C, VkPipelineLayout, PIPELINE_LAYOUT) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS nngn::NNGN_APPLY2 (C, VkSampler, SAMPLER) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE nngn::NNGN_APPLY2 (C, VkShaderModule, SHADER_MODULE) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER nngn::NNGN_IGNORE2 (C, VkCommandBuffer, COMMAND_BUFFER) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL nngn::NNGN_APPLY2 (C, VkDescriptorPool, DESCRIPTOR_POOL) NNGN_IGNORE2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET nngn::NNGN_APPLY2 (C, VkDescriptorSetLayout, DESCRIPTOR_SET_LAYOUT) NNGN_IGNORE2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY nngn::NNGN_APPLY2 (C, VkFence, FENCE) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY FRAMEBUFFER nngn::NNGN_APPLY2 (C, VkImage, IMAGE) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY FRAMEBUFFER IMAGE_VIEW nngn::NNGN_IGNORE2 (C, VkPipeline, PIPELINE) NNGN_IGNORE2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY FRAMEBUFFER IMAGE_VIEW QUEUE nngn::NNGN_APPLY2 (C, VkPipelineCache, PIPELINE_CACHE) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY FRAMEBUFFER IMAGE_VIEW QUEUE PIPELINE_LAYOUT nngn::NNGN_APPLY2 (C, VkRenderPass, RENDER_PASS) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY FRAMEBUFFER IMAGE_VIEW QUEUE PIPELINE_LAYOUT SAMPLER nngn::NNGN_APPLY2 (C, VkSemaphore, SEMAPHORE) NNGN_APPLY2(C
 

Variables

template<typename T >
constexpr empty nngn::vk_struct_type = {}
 Maps types to VkStructureType values.
 
template<typename T >
constexpr empty nngn::vk_obj_type = {}
 Maps types to VkObjectType values.
 
 nngn::detail::VkCommandBuffer
 
COMMAND_BUFFER nngn::detail::VkDescriptorPool
 
COMMAND_BUFFER DESCRIPTOR_POOL nngn::detail::VkDescriptorSetLayout
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT nngn::detail::VkFence
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE nngn::detail::VkImage
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE nngn::detail::VkPipeline
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE nngn::detail::VkPipelineCache
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE nngn::detail::VkRenderPass
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS nngn::detail::VkSemaphore
 
 nngn::VkCommandBuffer
 
COMMAND_BUFFER nngn::VkDescriptorPool
 
COMMAND_BUFFER DESCRIPTOR_POOL nngn::VkDescriptorSetLayout
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT nngn::VkFence
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE nngn::VkImage
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE nngn::VkPipeline
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE nngn::VkPipelineCache
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE nngn::VkRenderPass
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS nngn::VkSemaphore
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE nngn::VkBuffer
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER nngn::VkCommandPool
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL nngn::VkDescriptorSet
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET nngn::VkDeviceMemory
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY nngn::VkFramebuffer
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY FRAMEBUFFER nngn::VkImageView
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY FRAMEBUFFER IMAGE_VIEW nngn::VkQueue
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY FRAMEBUFFER IMAGE_VIEW QUEUE nngn::VkPipelineLayout
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY FRAMEBUFFER IMAGE_VIEW QUEUE PIPELINE_LAYOUT nngn::VkSampler
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS SEMAPHORE BUFFER COMMAND_POOL DESCRIPTOR_SET DEVICE_MEMORY FRAMEBUFFER IMAGE_VIEW QUEUE PIPELINE_LAYOUT SAMPLER nngn::VkShaderModule
 

Macro Definition Documentation

◆ C [1/2]

#define C (   x,
  _ 
)
Value:
template<> struct vk_create_info_type_impl<x> \
{ using type = x ## CreateInfo; };

◆ C [2/2]

#define C (   x,
  n 
)
Value:
template<> inline constexpr auto vk_struct_type<x> = \
VK_STRUCTURE_TYPE_ ## n ## _CREATE_INFO;
n
Definition: dump_lights.lua:5

◆ NNGN_VK_TYPES

#define NNGN_VK_TYPES (   f)
Value:
f(VkBuffer, BUFFER, NNGN_APPLY2) \
f(VkCommandBuffer, COMMAND_BUFFER, NNGN_IGNORE2) \
f(VkCommandPool, COMMAND_POOL, NNGN_APPLY2) \
f(VkDescriptorPool, DESCRIPTOR_POOL, NNGN_APPLY2) \
f(VkDescriptorSet, DESCRIPTOR_SET, NNGN_IGNORE2) \
f(VkDescriptorSetLayout, DESCRIPTOR_SET_LAYOUT, NNGN_APPLY2) \
f(VkDeviceMemory, DEVICE_MEMORY, NNGN_IGNORE2) \
f(VkFence, FENCE, NNGN_APPLY2) \
f(VkFramebuffer, FRAMEBUFFER, NNGN_APPLY2) \
f(VkImage, IMAGE, NNGN_APPLY2) \
f(VkImageView, IMAGE_VIEW, NNGN_APPLY2) \
f(VkPipeline, PIPELINE, NNGN_IGNORE2) \
f(VkQueue, QUEUE, NNGN_IGNORE2) \
f(VkPipelineCache, PIPELINE_CACHE, NNGN_APPLY2) \
f(VkPipelineLayout, PIPELINE_LAYOUT, NNGN_APPLY2) \
f(VkRenderPass, RENDER_PASS, NNGN_APPLY2) \
f(VkSampler, SAMPLER, NNGN_APPLY2) \
f(VkSemaphore, SEMAPHORE, NNGN_APPLY2) \
f(VkShaderModule, SHADER_MODULE, NNGN_APPLY2)
function f()) end
#define NNGN_APPLY2(f, x0, x1)
Definition: macros.h:5
#define NNGN_IGNORE2(f, x0, x1)
Definition: macros.h:7

X-macro that operates on Vulkan types.

Fields: Vulkan type, enum name fragment, create info function.

◆ X [1/3]

#define X (   x,
  n,
  _ 
)
Value:
template<> inline constexpr auto vk_obj_type<x> = \
VK_OBJECT_TYPE_ ## n;

◆ X [2/3]

#define X (   x,
  n,
  c 
)    c(C, x, n)

◆ X [3/3]

#define X (   x,
  n,
  c 
)    c(C, x, n)