nngn
Loading...
Searching...
No Matches
nngn::detail Namespace Reference

Classes

class  Buffer
 A buffer and its associated memory allocation. More...
 
struct  chain_cast
 
struct  fn_args
 
struct  fn_args< R(*)(A...)>
 
struct  types_first
 
struct  types_first< types_impl< T, Ts... > >
 
struct  types_impl
 
struct  types_last
 
struct  types_last< types_impl< Ts... > >
 
struct  types_tag
 
struct  vk_create_info_type_impl
 

Concepts

concept  tracker_with_realloc
 Checks whether the tracker object tracks memory relocation.
 

Typedefs

template<typename T , typename F , typename ... Args>
using scoped_base = std::conditional_t< std::is_same_v< T, nngn::empty >, delegate< F, Args... >, delegate< F, T, Args... > >
 
template<type_list T>
using types_first_t = typename types_first< T >::type
 
template<type_list T>
using types_last_t = typename types_last< T >::type
 
template<type_list T>
using type = types_first< T >
 
template<type_list T>
using type_t = types_first_t< T >
 

Functions

auto arg_size (const std::byte &)
 
auto arg_ptr (const std::byte &b)
 
auto arg_size (const Compute::Handle &t)
 
auto arg_ptr (const Compute::Handle &t)
 
template<arithmetic T>
auto arg_size (const T &)
 
auto arg_ptr (const arithmetic auto &t)
 
auto arg_size (const std::ranges::sized_range auto &r)
 
auto arg_ptr (const std::ranges::range auto &r)
 
 NNGN_APPLY2 (C, VkBuffer, BUFFER) NNGN_IGNORE2(C
 
COMMAND_BUFFER NNGN_APPLY2 (C, VkCommandPool, COMMAND_POOL) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL NNGN_IGNORE2 (C, VkDescriptorSet, DESCRIPTOR_SET) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT NNGN_IGNORE2 (C, VkDeviceMemory, DEVICE_MEMORY) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE NNGN_APPLY2 (C, VkFramebuffer, FRAMEBUFFER) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE NNGN_APPLY2 (C, VkImageView, IMAGE_VIEW) NNGN_IGNORE2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE NNGN_IGNORE2 (C, VkQueue, QUEUE) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE NNGN_APPLY2 (C, VkPipelineLayout, PIPELINE_LAYOUT) NNGN_APPLY2(C
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS NNGN_APPLY2 (C, VkSampler, SAMPLER) NNGN_APPLY2(C
 
bool obj_invalid (std::size_t i, std::string_view line)
 
std::string_view obj_parse_line (const char *p, std::streamsize n)
 
bool obj_read_vec (std::size_t line, std::string_view args, const char *name, vec3 *v)
 
bool obj_read_face_indices (std::size_t line, std::string_view args, std::string_view *ps, zvec3 *pv)
 

Variables

 VkCommandBuffer
 
COMMAND_BUFFER VkDescriptorPool
 
COMMAND_BUFFER DESCRIPTOR_POOL VkDescriptorSetLayout
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT VkFence
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE VkImage
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE VkPipeline
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE VkPipelineCache
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE VkRenderPass
 
COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS VkSemaphore
 
template<typename A >
static constexpr bool has_realloc
 Checks whether an allocator supports memory relocation.
 
template<typename A , typename T >
static constexpr bool has_typed_alloc
 Checks whether an allocator supports typed memory allocations.
 
template<typename >
constexpr bool is_stateless_lambda = false
 
template<typename A >
static constexpr bool has_realloc
 Checks whether an allocator supports memory relocation.
 
template<typename A , typename T >
static constexpr bool has_typed_alloc
 Checks whether an allocator supports typed memory allocations.
 

Typedef Documentation

◆ scoped_base

template<typename T , typename F , typename ... Args>
using nngn::detail::scoped_base = typedef std::conditional_t< std::is_same_v<T, nngn::empty>, delegate<F, Args...>, delegate<F, T, Args...> >

◆ type

template<type_list T>
using nngn::detail::type = typedef types_first<T>

◆ type_t

template<type_list T>
using nngn::detail::type_t = typedef types_first_t<T>

◆ types_first_t

template<type_list T>
using nngn::detail::types_first_t = typedef typename types_first<T>::type

◆ types_last_t

template<type_list T>
using nngn::detail::types_last_t = typedef typename types_last<T>::type

Function Documentation

◆ arg_ptr() [1/4]

auto nngn::detail::arg_ptr ( const arithmetic auto &  t)
Here is the call graph for this function:

◆ arg_ptr() [2/4]

auto nngn::detail::arg_ptr ( const Compute::Handle t)
inline
Here is the call graph for this function:

◆ arg_ptr() [3/4]

auto nngn::detail::arg_ptr ( const std::byte &  b)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ arg_ptr() [4/4]

auto nngn::detail::arg_ptr ( const std::ranges::range auto &  r)
Here is the call graph for this function:

◆ arg_size() [1/4]

auto nngn::detail::arg_size ( const Compute::Handle t)
inline
Here is the call graph for this function:

◆ arg_size() [2/4]

auto nngn::detail::arg_size ( const std::byte &  )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ arg_size() [3/4]

auto nngn::detail::arg_size ( const std::ranges::sized_range auto &  r)
Here is the call graph for this function:

◆ arg_size() [4/4]

template<arithmetic T>
auto nngn::detail::arg_size ( const T )
Here is the call graph for this function:

◆ NNGN_APPLY2() [1/6]

nngn::detail::NNGN_APPLY2 ( C  ,
VkBuffer  ,
BUFFER   
)

◆ NNGN_APPLY2() [2/6]

COMMAND_BUFFER nngn::detail::NNGN_APPLY2 ( C  ,
VkCommandPool  ,
COMMAND_POOL   
)

◆ NNGN_APPLY2() [3/6]

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE nngn::detail::NNGN_APPLY2 ( C  ,
VkFramebuffer  ,
FRAMEBUFFER   
)

◆ NNGN_APPLY2() [4/6]

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE nngn::detail::NNGN_APPLY2 ( C  ,
VkImageView  ,
IMAGE_VIEW   
)

◆ NNGN_APPLY2() [5/6]

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE nngn::detail::NNGN_APPLY2 ( C  ,
VkPipelineLayout  ,
PIPELINE_LAYOUT   
)

◆ NNGN_APPLY2() [6/6]

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS nngn::detail::NNGN_APPLY2 ( C  ,
VkSampler  ,
SAMPLER   
)

◆ NNGN_IGNORE2() [1/3]

COMMAND_BUFFER DESCRIPTOR_POOL nngn::detail::NNGN_IGNORE2 ( C  ,
VkDescriptorSet  ,
DESCRIPTOR_SET   
)

◆ NNGN_IGNORE2() [2/3]

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT nngn::detail::NNGN_IGNORE2 ( C  ,
VkDeviceMemory  ,
DEVICE_MEMORY   
)

◆ NNGN_IGNORE2() [3/3]

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE nngn::detail::NNGN_IGNORE2 ( C  ,
VkQueue  ,
QUEUE   
)

◆ obj_invalid()

bool nngn::detail::obj_invalid ( std::size_t  i,
std::string_view  line 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ obj_parse_line()

std::string_view nngn::detail::obj_parse_line ( const char *  p,
std::streamsize  n 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ obj_read_face_indices()

bool nngn::detail::obj_read_face_indices ( std::size_t  line,
std::string_view  args,
std::string_view *  ps,
zvec3 pv 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ obj_read_vec()

bool nngn::detail::obj_read_vec ( std::size_t  line,
std::string_view  args,
const char *  name,
vec3 v 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ has_realloc [1/2]

template<typename A >
constexpr bool nngn::detail::has_realloc
staticconstexpr
Initial value:
=
requires(A a, typename A::pointer p, std::size_t n) {
a.reallocate(p, n);
}
n
Definition: dump_lights.lua:5
a
Definition: input.lua:31
p
Definition: input.lua:29

Checks whether an allocator supports memory relocation.

Allocators use this check to conditionally support this operation themselves when the base allocator does.

◆ has_realloc [2/2]

template<typename A >
constexpr bool nngn::detail::has_realloc
staticconstexpr
Initial value:
=
requires(A a, typename A::pointer p, std::size_t n) {
a.reallocate(p, n);
}

Checks whether an allocator supports memory relocation.

Allocators use this check to conditionally support this operation themselves when the base allocator does.

◆ has_typed_alloc [1/2]

template<typename A , typename T >
constexpr bool nngn::detail::has_typed_alloc
staticconstexpr
Initial value:
=
requires(A a, typename A::pointer p, std::size_t n, T t) {
a.allocate(p, n, t);
}
#define T(f0, f1, f2)

Checks whether an allocator supports typed memory allocations.

Allocators use this check to conditionally support this operation themselves when the base allocator does.

◆ has_typed_alloc [2/2]

template<typename A , typename T >
constexpr bool nngn::detail::has_typed_alloc
staticconstexpr
Initial value:
=
requires(A a, typename A::pointer p, std::size_t n, T t) {
a.allocate(p, n, t);
}

Checks whether an allocator supports typed memory allocations.

Allocators use this check to conditionally support this operation themselves when the base allocator does.

◆ is_stateless_lambda

template<typename >
constexpr bool nngn::detail::is_stateless_lambda = false
inlineconstexpr

◆ VkCommandBuffer

nngn::detail::VkCommandBuffer

◆ VkDescriptorPool

COMMAND_BUFFER nngn::detail::VkDescriptorPool

◆ VkDescriptorSetLayout

COMMAND_BUFFER DESCRIPTOR_POOL nngn::detail::VkDescriptorSetLayout

◆ VkFence

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT nngn::detail::VkFence

◆ VkImage

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE nngn::detail::VkImage

◆ VkPipeline

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE nngn::detail::VkPipeline

◆ VkPipelineCache

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE nngn::detail::VkPipelineCache

◆ VkRenderPass

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE nngn::detail::VkRenderPass

◆ VkSemaphore

COMMAND_BUFFER DESCRIPTOR_POOL DESCRIPTOR_SET_LAYOUT FENCE IMAGE PIPELINE PIPELINE_CACHE RENDER_PASS nngn::detail::VkSemaphore