nngn
Loading...
Searching...
No Matches
anonymous_namespace{vulkan.cpp}::VulkanBackend Class Referencefinal
Inheritance diagram for anonymous_namespace{vulkan.cpp}::VulkanBackend:
Collaboration diagram for anonymous_namespace{vulkan.cpp}::VulkanBackend:

Classes

struct  Post
 

Public Member Functions

 VulkanBackend (const VulkanParameters &p)
 
 ~VulkanBackend (void) final
 
Version version (void) const final
 
bool init_backend (void) final
 
bool init_instance (void) final
 
bool init_device (void) final
 
bool init_device (std::size_t i) final
 
std::size_t n_extensions (void) const final
 
std::size_t n_layers (void) const final
 
std::size_t n_devices (void) const final
 
std::size_t n_device_extensions (std::size_t i) const final
 
std::size_t n_queue_families (std::size_t i) const override
 
std::size_t n_present_modes (void) const final
 
std::size_t n_heaps (std::size_t i) const final
 
std::size_t n_memory_types (std::size_t ih, std::size_t i) const final
 
std::size_t selected_device (void) const final
 
void extensions (Extension *p) const final
 
void layers (Layer *p) const final
 
void device_infos (DeviceInfo *p) const final
 
void device_extensions (std::size_t i, Extension *p) const final
 
void queue_families (std::size_t i, QueueFamily *p) const override
 
SurfaceInfo surface_info () const final
 
void present_modes (PresentMode *p) const final
 
void heaps (std::size_t i, MemoryHeap *p) const final
 
void memory_types (std::size_t, std::size_t, MemoryType *) const final
 
bool error () final
 
nngn::GraphicsStats stats () override
 
bool set_n_frames (std::size_t n) final
 
bool set_n_swap_chain_images (std::size_t n) final
 
void set_swap_interval (int i) final
 
void set_camera_updated () final
 
void set_lighting_updated () final
 
bool set_shadow_map_size (u32 s) final
 
bool set_shadow_cube_size (u32 s) final
 
void set_automatic_exposure (bool b) final
 
void set_exposure (float e) final
 
void set_bloom_downscale (std::size_t d) final
 
void set_bloom_threshold (float t) final
 
void set_bloom_blur_size (float n) final
 
void set_bloom_blur_passes (std::size_t n) final
 
void set_bloom_amount (float a) final
 
void set_blur_downscale (std::size_t d) final
 
void set_blur_size (float n) final
 
void set_blur_passes (std::size_t n) final
 
void set_HDR_mix (float m) final
 
u32 create_pipeline (const PipelineConfiguration &conf) final
 
u32 create_buffer (const BufferConfiguration &conf) final
 
bool set_buffer_capacity (u32 b, u64 size) final
 
bool set_buffer_size (u32, u64 size) final
 
bool write_to_buffer (u32 b, u64 offset, u64 n, u64 size, void *data, void f(void *, void *, u64, u64)) final
 
bool resize_textures (std::uint32_t s) final
 
bool load_textures (std::uint32_t i, std::uint32_t n, const std::byte *v) final
 
bool resize_font (std::uint32_t s) final
 
bool load_font (unsigned char c, std::uint32_t n, const nngn::uvec2 *size, const std::byte *v) final
 
void set_camera (const Camera &c) final
 
void set_lighting (const Lighting &l) final
 
bool set_render_list (const RenderList &l) final
 
bool render () final
 
bool vsync () final
 
 VulkanBackend (const VulkanParameters &p)
 
 ~VulkanBackend (void) final
 
Version version (void) const final
 
bool init_backend (void) final
 
bool init_instance (void) final
 
bool init_device (void) final
 
bool init_device (std::size_t i) final
 
std::size_t n_extensions (void) const final
 
std::size_t n_layers (void) const final
 
std::size_t n_devices (void) const final
 
std::size_t n_device_extensions (std::size_t i) const final
 
std::size_t n_queue_families (std::size_t i) const override
 
std::size_t n_present_modes (void) const final
 
std::size_t n_heaps (std::size_t i) const final
 
std::size_t n_memory_types (std::size_t ih, std::size_t i) const final
 
std::size_t selected_device (void) const final
 
void extensions (Extension *p) const final
 
void layers (Layer *p) const final
 
void device_infos (DeviceInfo *p) const final
 
void device_extensions (std::size_t i, Extension *p) const final
 
void queue_families (std::size_t i, QueueFamily *p) const override
 
SurfaceInfo surface_info () const final
 
void present_modes (PresentMode *p) const final
 
void heaps (std::size_t i, MemoryHeap *p) const final
 
void memory_types (std::size_t, std::size_t, MemoryType *) const final
 
bool error () final
 
nngn::GraphicsStats stats () override
 
bool set_n_frames (std::size_t n) final
 
bool set_n_swap_chain_images (std::size_t n) final
 
void set_swap_interval (int i) final
 
void set_camera_updated () final
 
void set_lighting_updated () final
 
bool set_shadow_map_size (u32 s) final
 
bool set_shadow_cube_size (u32 s) final
 
void set_automatic_exposure (bool b) final
 
void set_exposure (float e) final
 
void set_bloom_downscale (std::size_t d) final
 
void set_bloom_threshold (float t) final
 
void set_bloom_blur_size (float n) final
 
void set_bloom_blur_passes (std::size_t n) final
 
void set_bloom_amount (float a) final
 
void set_blur_downscale (std::size_t d) final
 
void set_blur_size (float n) final
 
void set_blur_passes (std::size_t n) final
 
void set_HDR_mix (float m) final
 
u32 create_pipeline (const PipelineConfiguration &conf) final
 
u32 create_buffer (const BufferConfiguration &conf) final
 
bool set_buffer_capacity (u32 b, u64 size) final
 
bool set_buffer_size (u32, u64 size) final
 
bool write_to_buffer (u32 b, u64 offset, u64 n, u64 size, void *data, void f(void *, void *, u64, u64)) final
 
bool resize_textures (std::uint32_t s) final
 
bool load_textures (std::uint32_t i, std::uint32_t n, const std::byte *v) final
 
bool resize_font (std::uint32_t s) final
 
bool load_font (unsigned char c, std::uint32_t n, const nngn::uvec2 *size, const std::byte *v) final
 
void set_camera (const Camera &c) final
 
void set_lighting (const Lighting &l) final
 
bool set_render_list (const RenderList &l) final
 
bool render () final
 
bool vsync () final
 
- Public Member Functions inherited from nngn::GLFWBackend
 GLFWBackend (void)=default
 
 GLFWBackend (const Parameters &p)
 
 ~GLFWBackend (void) override
 
bool init_glfw (void) const
 
bool window_closed (void) const final
 
int swap_interval (void) const final
 
nngn::uvec2 window_size (void) const override
 
void get_keys (size_t n, int32_t *keys) const override
 
ivec2 mouse_pos (void) const override
 
void set_swap_interval (int i) override
 
void set_window_title (const char *t) final
 
void set_cursor_mode (CursorMode m) final
 
void set_size_callback (void *data, size_callback_f f) override
 
void set_key_callback (void *data, key_callback_f f) override
 
void set_mouse_button_callback (void *data, mouse_button_callback_f f) override
 
void set_mouse_move_callback (void *data, mouse_move_callback_f f) override
 
void resize (int, int) override
 
void set_camera (const Camera &c) override
 
void set_lighting (const Lighting &l) override
 
void poll_events (void) const final
 
bool render (void) override
 
 GLFWBackend (void)=default
 
 GLFWBackend (const Parameters &p)
 
 ~GLFWBackend (void) override
 
bool init_glfw (void) const
 
bool window_closed (void) const final
 
int swap_interval (void) const final
 
nngn::uvec2 window_size (void) const override
 
void get_keys (size_t n, int32_t *keys) const override
 
ivec2 mouse_pos (void) const override
 
void set_swap_interval (int i) override
 
void set_window_title (const char *t) final
 
void set_cursor_mode (CursorMode m) final
 
void set_size_callback (void *data, size_callback_f f) override
 
void set_key_callback (void *data, key_callback_f f) override
 
void set_mouse_button_callback (void *data, mouse_button_callback_f f) override
 
void set_mouse_move_callback (void *data, mouse_move_callback_f f) override
 
void resize (int, int) override
 
void set_camera (const Camera &c) override
 
void set_lighting (const Lighting &l) override
 
void poll_events (void) const final
 
bool render (void) override
 
- Public Member Functions inherited from nngn::Graphics
virtual bool init ()
 Fully initialize the back end.
 
virtual bool init_backend ()=0
 
virtual bool init_instance ()=0
 
virtual bool init_device ()=0
 
virtual bool init_device (std::size_t i)=0
 
virtual std::size_t n_extensions () const =0
 
virtual std::size_t n_layers () const =0
 
virtual std::size_t n_devices () const =0
 
virtual std::size_t n_device_extensions (std::size_t i) const =0
 
virtual std::size_t n_queue_families (std::size_t i) const =0
 
virtual std::size_t n_present_modes () const =0
 
virtual std::size_t n_heaps (std::size_t i) const =0
 
virtual std::size_t n_memory_types (std::size_t i, std::size_t ih) const =0
 
virtual std::size_t selected_device () const =0
 
virtual void extensions (Extension *p) const =0
 
virtual void layers (Layer *p) const =0
 
virtual void device_infos (DeviceInfo *p) const =0
 
virtual void device_extensions (std::size_t i, Extension *p) const =0
 
virtual void queue_families (std::size_t i, QueueFamily *p) const =0
 
virtual SurfaceInfo surface_info () const =0
 
virtual void present_modes (PresentMode *p) const =0
 
virtual void heaps (std::size_t i, MemoryHeap *p) const =0
 
virtual void memory_types (std::size_t i, std::size_t ih, MemoryType *p) const =0
 
virtual bool error ()=0
 
virtual Version version () const =0
 
virtual bool window_closed () const =0
 
virtual int swap_interval () const =0
 
virtual uvec2 window_size () const =0
 
virtual GraphicsStats stats ()=0
 
virtual void get_keys (size_t n, int32_t *keys) const =0
 
virtual ivec2 mouse_pos (void) const =0
 
virtual bool set_n_frames (std::size_t n)=0
 
virtual bool set_n_swap_chain_images (std::size_t n)=0
 
virtual void set_swap_interval (int i)=0
 
virtual void set_window_title (const char *t)=0
 
virtual void set_cursor_mode (CursorMode m)=0
 
virtual void set_size_callback (void *data, size_callback_f f)=0
 
virtual void set_key_callback (void *data, key_callback_f f)=0
 
virtual void set_mouse_button_callback (void *data, mouse_button_callback_f f)=0
 
virtual void set_mouse_move_callback (void *data, mouse_move_callback_f f)=0
 
virtual void resize (int w, int h)=0
 
virtual void set_camera (const Camera &c)=0
 
virtual void set_lighting (const Lighting &l)=0
 
virtual void set_camera_updated ()=0
 
virtual void set_lighting_updated ()=0
 
virtual bool set_shadow_map_size (uint32_t s)=0
 
virtual bool set_shadow_cube_size (uint32_t s)=0
 
virtual void set_automatic_exposure (bool b)=0
 
virtual void set_exposure (float e)=0
 
virtual void set_bloom_downscale (std::size_t d)=0
 
virtual void set_bloom_threshold (float t)=0
 
virtual void set_bloom_blur_size (float n)=0
 
virtual void set_bloom_blur_passes (std::size_t n)=0
 
virtual void set_bloom_amount (float a)=0
 
virtual void set_blur_downscale (std::size_t d)=0
 
virtual void set_blur_size (float n)=0
 
virtual void set_blur_passes (std::size_t n)=0
 
virtual void set_HDR_mix (float m)=0
 
virtual u32 create_pipeline (const PipelineConfiguration &conf)=0
 
virtual u32 create_buffer (const BufferConfiguration &conf)=0
 
virtual bool set_buffer_capacity (u32 b, u64 size)=0
 
virtual bool set_buffer_size (u32 b, std::uint64_t size)=0
 
virtual bool write_to_buffer (u32 b, u64 offset, u64 n, u64 size, void *data, void f(void *, void *, u64, u64))=0
 
template<typename F >
bool write_to_buffer (u32 b, u64 offset, u64 n, u64 size, F &&f)
 
bool update_buffers (u32 vbo, u32 ebo, u64 voff, u64 eoff, u64 vn, u64 vsize, u64 en, u64 esize, void *data, auto &&vgen, auto &&egen)
 
virtual bool resize_textures (std::uint32_t s)=0
 
virtual bool load_textures (std::uint32_t i, std::uint32_t n, const std::byte *v)=0
 
virtual bool resize_font (std::uint32_t s)=0
 
virtual bool load_font (unsigned char c, std::uint32_t n, const nngn::uvec2 *size, const std::byte *v)=0
 
virtual bool set_render_list (const RenderList &l)=0
 
virtual void poll_events () const =0
 
virtual bool render ()=0
 
virtual bool vsync ()=0
 
virtual bool init ()
 Fully initialize the back end.
 
virtual bool init_backend ()=0
 
virtual bool init_instance ()=0
 
virtual bool init_device ()=0
 
virtual bool init_device (std::size_t i)=0
 
virtual std::size_t n_extensions () const =0
 
virtual std::size_t n_layers () const =0
 
virtual std::size_t n_devices () const =0
 
virtual std::size_t n_device_extensions (std::size_t i) const =0
 
virtual std::size_t n_queue_families (std::size_t i) const =0
 
virtual std::size_t n_present_modes () const =0
 
virtual std::size_t n_heaps (std::size_t i) const =0
 
virtual std::size_t n_memory_types (std::size_t i, std::size_t ih) const =0
 
virtual std::size_t selected_device () const =0
 
virtual void extensions (Extension *p) const =0
 
virtual void layers (Layer *p) const =0
 
virtual void device_infos (DeviceInfo *p) const =0
 
virtual void device_extensions (std::size_t i, Extension *p) const =0
 
virtual void queue_families (std::size_t i, QueueFamily *p) const =0
 
virtual SurfaceInfo surface_info () const =0
 
virtual void present_modes (PresentMode *p) const =0
 
virtual void heaps (std::size_t i, MemoryHeap *p) const =0
 
virtual void memory_types (std::size_t i, std::size_t ih, MemoryType *p) const =0
 
virtual bool error ()=0
 
virtual Version version () const =0
 
virtual bool window_closed () const =0
 
virtual int swap_interval () const =0
 
virtual uvec2 window_size () const =0
 
virtual GraphicsStats stats ()=0
 
virtual void get_keys (size_t n, int32_t *keys) const =0
 
virtual ivec2 mouse_pos (void) const =0
 
virtual bool set_n_frames (std::size_t n)=0
 
virtual bool set_n_swap_chain_images (std::size_t n)=0
 
virtual void set_swap_interval (int i)=0
 
virtual void set_window_title (const char *t)=0
 
virtual void set_cursor_mode (CursorMode m)=0
 
virtual void set_size_callback (void *data, size_callback_f f)=0
 
virtual void set_key_callback (void *data, key_callback_f f)=0
 
virtual void set_mouse_button_callback (void *data, mouse_button_callback_f f)=0
 
virtual void set_mouse_move_callback (void *data, mouse_move_callback_f f)=0
 
virtual void resize (int w, int h)=0
 
virtual void set_camera (const Camera &c)=0
 
virtual void set_lighting (const Lighting &l)=0
 
virtual void set_camera_updated ()=0
 
virtual void set_lighting_updated ()=0
 
virtual bool set_shadow_map_size (uint32_t s)=0
 
virtual bool set_shadow_cube_size (uint32_t s)=0
 
virtual void set_automatic_exposure (bool b)=0
 
virtual void set_exposure (float e)=0
 
virtual void set_bloom_downscale (std::size_t d)=0
 
virtual void set_bloom_threshold (float t)=0
 
virtual void set_bloom_blur_size (float n)=0
 
virtual void set_bloom_blur_passes (std::size_t n)=0
 
virtual void set_bloom_amount (float a)=0
 
virtual void set_blur_downscale (std::size_t d)=0
 
virtual void set_blur_size (float n)=0
 
virtual void set_blur_passes (std::size_t n)=0
 
virtual void set_HDR_mix (float m)=0
 
virtual u32 create_pipeline (const PipelineConfiguration &conf)=0
 
virtual u32 create_buffer (const BufferConfiguration &conf)=0
 
virtual bool set_buffer_capacity (u32 b, u64 size)=0
 
virtual bool set_buffer_size (u32 b, std::uint64_t size)=0
 
virtual bool write_to_buffer (u32 b, u64 offset, u64 n, u64 size, void *data, void f(void *, void *, u64, u64))=0
 
template<typename F >
bool write_to_buffer (u32 b, u64 offset, u64 n, u64 size, F &&f)
 
bool update_buffers (u32 vbo, u32 ebo, u64 voff, u64 eoff, u64 vn, u64 vsize, u64 en, u64 esize, void *data, auto &&vgen, auto &&egen)
 
virtual bool resize_textures (std::uint32_t s)=0
 
virtual bool load_textures (std::uint32_t i, std::uint32_t n, const std::byte *v)=0
 
virtual bool resize_font (std::uint32_t s)=0
 
virtual bool load_font (unsigned char c, std::uint32_t n, const nngn::uvec2 *size, const std::byte *v)=0
 
virtual bool set_render_list (const RenderList &l)=0
 
virtual void poll_events () const =0
 
virtual bool render ()=0
 
virtual bool vsync ()=0
 

Private Types

enum  Flag : u8 { ERROR = 1u << 0 , RECREATE_SWAPCHAIN = 1u << 1 , ERROR = 1u << 0 , RECREATE_SWAPCHAIN = 1u << 1 }
 
enum  Flag : u8 { ERROR = 1u << 0 , RECREATE_SWAPCHAIN = 1u << 1 , ERROR = 1u << 0 , RECREATE_SWAPCHAIN = 1u << 1 }
 

Private Member Functions

std::size_t last_frame () const
 
VkCommandBuffer cur_cmd_buffer () const
 
void resize (int, int) final
 
std::tuple< VkPhysicalDevice, u32, u32 > choose_device (std::size_t i) const
 
bool create_depth_pass ()
 
bool create_render_pass (VkFormat format)
 
bool create_pipelines ()
 
bool recreate_swapchain ()
 
bool update_render_list ()
 
bool create_cmd_buffer (std::size_t img_idx)
 
bool name_tex_array (std::string_view name, const TexArray &t) const
 
std::size_t last_frame () const
 
VkCommandBuffer cur_cmd_buffer () const
 
void resize (int, int) final
 
std::tuple< VkPhysicalDevice, u32, u32 > choose_device (std::size_t i) const
 
bool create_depth_pass ()
 
bool create_render_pass (VkFormat format)
 
bool create_pipelines ()
 
bool recreate_swapchain ()
 
bool update_render_list ()
 
bool create_cmd_buffer (std::size_t img_idx)
 
bool name_tex_array (std::string_view name, const TexArray &t) const
 

Static Private Member Functions

static void error_callback (void *p)
 
static bool begin_cmd (VkCommandBuffer cmd)
 
static bool submit (VkQueue queue, VkCommandBuffer cmd, VkPipelineStageFlags dst_mask={}, VkSemaphore wait={}, VkSemaphore signal={}, VkFence fence={})
 
static void copy_buffer (VkCommandBuffer cmd, VkImage dst, VkBuffer src, VkExtent3D extent, std::uint32_t base_layer, std::uint32_t n_layers, VkOffset3D dst_offset, VkDeviceSize src_offset)
 
static void error_callback (void *p)
 
static bool begin_cmd (VkCommandBuffer cmd)
 
static bool submit (VkQueue queue, VkCommandBuffer cmd, VkPipelineStageFlags dst_mask={}, VkSemaphore wait={}, VkSemaphore signal={}, VkFence fence={})
 
static void copy_buffer (VkCommandBuffer cmd, VkImage dst, VkBuffer src, VkExtent3D extent, std::uint32_t base_layer, std::uint32_t n_layers, VkOffset3D dst_offset, VkDeviceSize src_offset)
 

Private Attributes

nngn::Flags< Flagflags = {}
 
Version m_version = {}
 
LogLevel log_level
 
Post post = {}
 
nngn::InstanceInfo instance_info = {}
 
std::vector< nngn::DeviceInfom_device_infos = {}
 
std::vector< nngn::DeviceMemoryInfom_memory_infos = {}
 
nngn::SurfaceInfo m_surface_info = {}
 
nngn::Instance instance = {}
 
nngn::Device dev = {}
 
nngn::DeviceMemory dev_mem = {}
 
nngn::GraphicsStats m_stats = {}
 
std::vector< VkFence > frame_fences = {}
 
std::size_t n_swap_chain = {}
 
std::size_t cur_frame = {}
 
std::size_t n_frames = {}
 
nngn::StagingBuffer stg_buffer = {}
 
Buffers buffers = {}
 
nngn::DedicatedBuffer ubo = {}
 
nngn::DescriptorPool descriptor_pool = {}
 
CameraDescriptorSets camera_descriptor_sets = {}
 
TextureDescriptorSets texture_descriptor_sets = {}
 
LightingDescriptorSets lighting_descriptor_sets = {}
 
Shaders shaders = {}
 
VkRenderPass depth_pass = {}
 
VkRenderPass render_pass = {}
 
VkPipelineCache pipeline_cache = {}
 
VkPipelineLayout pipeline_layout = {}
 
std::vector< VkPipeline > pipelines = {}
 
nngn::SwapChain swap_chain = {}
 
std::vector< nngn::CommandPoolcmd_pools = {}
 
std::vector< PipelineConfigurationpipeline_conf = {{}}
 
::RenderList render_list = {}
 
VkSampler sampler = {}
 
VkSampler shadow_sampler = {}
 
TexArray tex = {}
 
TexArray font_tex = {}
 
ShadowMap shadow_map = {}
 
ShadowCube shadow_cube = {}
 
u32 font_size = {}
 

Additional Inherited Members

- Public Types inherited from nngn::Graphics
enum class  Backend : u8 {
  PSEUDOGRAPH , TERMINAL_BACKEND , OPENGL_BACKEND , OPENGL_ES_BACKEND ,
  VULKAN_BACKEND , PSEUDOGRAPH , TERMINAL_BACKEND , OPENGL_BACKEND ,
  OPENGL_ES_BACKEND , VULKAN_BACKEND
}
 
enum class  LogLevel {
  DEBUG , WARNING , ERROR , DEBUG ,
  WARNING , ERROR
}
 
enum class  PresentMode {
  IMMEDIATE , MAILBOX , FIFO , FIFO_RELAXED ,
  IMMEDIATE , MAILBOX , FIFO , FIFO_RELAXED
}
 
enum class  TerminalFlag : u8 {
  CLEAR = 1u << 0 , REPOSITION = 1u << 1 , DEDUPLICATE = 1u << 2 , HIDE_CURSOR = 1u << 3 ,
  RESET_COLOR = 1u << 4 , CLEAR = 1u << 0 , REPOSITION = 1u << 1 , DEDUPLICATE = 1u << 2 ,
  HIDE_CURSOR = 1u << 3 , RESET_COLOR = 1u << 4
}
 
enum class  TerminalMode { ASCII , COLORED , ASCII , COLORED }
 
enum class  CursorMode {
  NORMAL , HIDDEN , DISABLED , NORMAL ,
  HIDDEN , DISABLED
}
 
enum class  Backend : u8 {
  PSEUDOGRAPH , TERMINAL_BACKEND , OPENGL_BACKEND , OPENGL_ES_BACKEND ,
  VULKAN_BACKEND , PSEUDOGRAPH , TERMINAL_BACKEND , OPENGL_BACKEND ,
  OPENGL_ES_BACKEND , VULKAN_BACKEND
}
 
enum class  LogLevel {
  DEBUG , WARNING , ERROR , DEBUG ,
  WARNING , ERROR
}
 
enum class  PresentMode {
  IMMEDIATE , MAILBOX , FIFO , FIFO_RELAXED ,
  IMMEDIATE , MAILBOX , FIFO , FIFO_RELAXED
}
 
enum class  TerminalFlag : u8 {
  CLEAR = 1u << 0 , REPOSITION = 1u << 1 , DEDUPLICATE = 1u << 2 , HIDE_CURSOR = 1u << 3 ,
  RESET_COLOR = 1u << 4 , CLEAR = 1u << 0 , REPOSITION = 1u << 1 , DEDUPLICATE = 1u << 2 ,
  HIDE_CURSOR = 1u << 3 , RESET_COLOR = 1u << 4
}
 
enum class  TerminalMode { ASCII , COLORED , ASCII , COLORED }
 
enum class  CursorMode {
  NORMAL , HIDDEN , DISABLED , NORMAL ,
  HIDDEN , DISABLED
}
 
using size_callback_f = void(*)(void *, uvec2)
 
using key_callback_f = void(*)(void *, int, int, int, int)
 
using mouse_button_callback_f = void(*)(void *, int, int, int)
 
using mouse_move_callback_f = void(*)(void *, dvec2)
 
using size_callback_f = void(*)(void *, uvec2)
 
using key_callback_f = void(*)(void *, int, int, int, int)
 
using mouse_button_callback_f = void(*)(void *, int, int, int)
 
using mouse_move_callback_f = void(*)(void *, dvec2)
 
- Static Public Member Functions inherited from nngn::Graphics
static std::unique_ptr< Graphicscreate (Backend b, const void *params)
 
static const char * enum_str (DeviceInfo::Type t)
 
static const char * enum_str (QueueFamily::Flag f)
 
static const char * enum_str (PresentMode m)
 
static const char * enum_str (MemoryHeap::Flag m)
 
static const char * enum_str (MemoryType::Flag m)
 
static std::string flags_str (QueueFamily::Flag f)
 
static std::string flags_str (MemoryHeap::Flag f)
 
static std::string flags_str (MemoryType::Flag f)
 
static std::unique_ptr< Graphicscreate (Backend b, const void *params)
 
static const char * enum_str (DeviceInfo::Type t)
 
static const char * enum_str (QueueFamily::Flag f)
 
static const char * enum_str (PresentMode m)
 
static const char * enum_str (MemoryHeap::Flag m)
 
static const char * enum_str (MemoryType::Flag m)
 
static std::string flags_str (QueueFamily::Flag f)
 
static std::string flags_str (MemoryHeap::Flag f)
 
static std::string flags_str (MemoryType::Flag f)
 
- Static Public Attributes inherited from nngn::Graphics
static constexpr u32 TEXTURE_EXTENT = NNGN_TEXTURE_EXTENT
 
static constexpr u32 TEXTURE_EXTENT_LOG2 = std::countr_zero(TEXTURE_EXTENT)
 
static constexpr u32 TEXTURE_SIZE = NNGN_TEXTURE_SIZE
 
static constexpr u32 TEXTURE_MIP_LEVELS = Math::mip_levels(TEXTURE_EXTENT)
 
static constexpr u32 SHADOW_MAP_INITIAL_SIZE = 1024
 
static constexpr u32 SHADOW_CUBE_INITIAL_SIZE = 512
 
static constexpr float DEFAULT_EXPOSURE = 1.0f
 
static constexpr float DEFAULT_BLOOM_THRESHOLD = 0.75f
 
static constexpr float DEFAULT_BLOOM_BLUR_SIZE = 1.0f
 
static constexpr std::size_t DEFAULT_BLOOM_DOWNSCALE = 8
 
static constexpr std::size_t DEFAULT_BLUR_DOWNSCALE = 2
 
static constexpr std::size_t DEFAULT_BLOOM_BLUR_PASSES = 10
 
- Protected Member Functions inherited from nngn::GLFWBackend
bool create_window (void)
 
bool create_window (void)
 
- Protected Attributes inherited from nngn::GLFWBackend
int m_swap_interval = 1
 
GLFWwindow * w = nullptr
 
Parameters params = {}
 
Camera camera = {}
 
Lighting lighting = {}
 

Member Enumeration Documentation

◆ Flag [1/2]

enum anonymous_namespace{vulkan.cpp}::VulkanBackend::Flag : u8
private
Enumerator
ERROR 
RECREATE_SWAPCHAIN 
ERROR 
RECREATE_SWAPCHAIN 

◆ Flag [2/2]

enum anonymous_namespace{vulkan.cpp}::VulkanBackend::Flag : u8
private
Enumerator
ERROR 
RECREATE_SWAPCHAIN 
ERROR 
RECREATE_SWAPCHAIN 

Constructor & Destructor Documentation

◆ VulkanBackend() [1/2]

anonymous_namespace{vulkan.cpp}::VulkanBackend::VulkanBackend ( const VulkanParameters p)
explicit

◆ ~VulkanBackend() [1/2]

anonymous_namespace{vulkan.cpp}::VulkanBackend::~VulkanBackend ( void  )
final
Here is the call graph for this function:

◆ VulkanBackend() [2/2]

anonymous_namespace{vulkan.cpp}::VulkanBackend::VulkanBackend ( const VulkanParameters p)
explicit

◆ ~VulkanBackend() [2/2]

anonymous_namespace{vulkan.cpp}::VulkanBackend::~VulkanBackend ( void  )
final

Member Function Documentation

◆ begin_cmd() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::begin_cmd ( VkCommandBuffer  cmd)
staticprivate
Here is the call graph for this function:
Here is the caller graph for this function:

◆ begin_cmd() [2/2]

static bool anonymous_namespace{vulkan.cpp}::VulkanBackend::begin_cmd ( VkCommandBuffer  cmd)
staticprivate

◆ choose_device() [1/2]

std::tuple< VkPhysicalDevice, u32, u32 > anonymous_namespace{vulkan.cpp}::VulkanBackend::choose_device ( std::size_t  i) const
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ choose_device() [2/2]

std::tuple< VkPhysicalDevice, u32, u32 > anonymous_namespace{vulkan.cpp}::VulkanBackend::choose_device ( std::size_t  i) const
private

◆ copy_buffer() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::copy_buffer ( VkCommandBuffer  cmd,
VkImage  dst,
VkBuffer  src,
VkExtent3D  extent,
std::uint32_t  base_layer,
std::uint32_t  n_layers,
VkOffset3D  dst_offset,
VkDeviceSize  src_offset 
)
staticprivate
Here is the call graph for this function:
Here is the caller graph for this function:

◆ copy_buffer() [2/2]

static void anonymous_namespace{vulkan.cpp}::VulkanBackend::copy_buffer ( VkCommandBuffer  cmd,
VkImage  dst,
VkBuffer  src,
VkExtent3D  extent,
std::uint32_t  base_layer,
std::uint32_t  n_layers,
VkOffset3D  dst_offset,
VkDeviceSize  src_offset 
)
staticprivate

◆ create_buffer() [1/2]

u32 anonymous_namespace{vulkan.cpp}::VulkanBackend::create_buffer ( const BufferConfiguration conf)
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ create_buffer() [2/2]

u32 anonymous_namespace{vulkan.cpp}::VulkanBackend::create_buffer ( const BufferConfiguration conf)
finalvirtual

Implements nngn::Graphics.

◆ create_cmd_buffer() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::create_cmd_buffer ( std::size_t  img_idx)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_cmd_buffer() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::create_cmd_buffer ( std::size_t  img_idx)
private

◆ create_depth_pass() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::create_depth_pass ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_depth_pass() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::create_depth_pass ( )
private

◆ create_pipeline() [1/2]

u32 anonymous_namespace{vulkan.cpp}::VulkanBackend::create_pipeline ( const PipelineConfiguration conf)
finalvirtual

Implements nngn::Graphics.

◆ create_pipeline() [2/2]

u32 anonymous_namespace{vulkan.cpp}::VulkanBackend::create_pipeline ( const PipelineConfiguration conf)
finalvirtual

Implements nngn::Graphics.

◆ create_pipelines() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::create_pipelines ( )
private

◆ create_pipelines() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::create_pipelines ( )
private

◆ create_render_pass() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::create_render_pass ( VkFormat  format)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_render_pass() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::create_render_pass ( VkFormat  format)
private

◆ cur_cmd_buffer() [1/2]

VkCommandBuffer anonymous_namespace{vulkan.cpp}::VulkanBackend::cur_cmd_buffer ( ) const
private
Here is the caller graph for this function:

◆ cur_cmd_buffer() [2/2]

VkCommandBuffer anonymous_namespace{vulkan.cpp}::VulkanBackend::cur_cmd_buffer ( ) const
private

◆ device_extensions() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::device_extensions ( std::size_t  i,
Extension p 
) const
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ device_extensions() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::device_extensions ( std::size_t  i,
Extension p 
) const
finalvirtual

Implements nngn::Graphics.

◆ device_infos() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::device_infos ( DeviceInfo p) const
finalvirtual

Implements nngn::Graphics.

◆ device_infos() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::device_infos ( DeviceInfo p) const
finalvirtual

Implements nngn::Graphics.

◆ error() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::error ( )
inlinefinalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ error() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::error ( )
inlinefinalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ error_callback() [1/2]

static void anonymous_namespace{vulkan.cpp}::VulkanBackend::error_callback ( void *  p)
inlinestaticprivate
Here is the call graph for this function:
Here is the caller graph for this function:

◆ error_callback() [2/2]

static void anonymous_namespace{vulkan.cpp}::VulkanBackend::error_callback ( void *  p)
inlinestaticprivate
Here is the call graph for this function:

◆ extensions() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::extensions ( Extension p) const
finalvirtual

Implements nngn::Graphics.

Here is the caller graph for this function:

◆ extensions() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::extensions ( Extension p) const
finalvirtual

Implements nngn::Graphics.

◆ heaps() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::heaps ( std::size_t  i,
MemoryHeap p 
) const
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ heaps() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::heaps ( std::size_t  i,
MemoryHeap p 
) const
finalvirtual

Implements nngn::Graphics.

◆ init_backend() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::init_backend ( void  )
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ init_backend() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::init_backend ( void  )
finalvirtual

Implements nngn::Graphics.

◆ init_device() [1/4]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::init_device ( std::size_t  i)
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ init_device() [2/4]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::init_device ( std::size_t  i)
finalvirtual

Implements nngn::Graphics.

◆ init_device() [3/4]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::init_device ( void  )
inlinefinalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_device() [4/4]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::init_device ( void  )
inlinefinalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_instance() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::init_instance ( void  )
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ init_instance() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::init_instance ( void  )
finalvirtual

Implements nngn::Graphics.

◆ last_frame() [1/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::last_frame ( ) const
inlineprivate
Here is the caller graph for this function:

◆ last_frame() [2/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::last_frame ( ) const
inlineprivate

◆ layers() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::layers ( Layer p) const
finalvirtual

Implements nngn::Graphics.

Here is the caller graph for this function:

◆ layers() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::layers ( Layer p) const
finalvirtual

Implements nngn::Graphics.

◆ load_font() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::load_font ( unsigned char  c,
std::uint32_t  n,
const nngn::uvec2 size,
const std::byte *  v 
)
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ load_font() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::load_font ( unsigned char  c,
std::uint32_t  n,
const nngn::uvec2 size,
const std::byte *  v 
)
finalvirtual

Implements nngn::Graphics.

◆ load_textures() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::load_textures ( std::uint32_t  i,
std::uint32_t  n,
const std::byte *  v 
)
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ load_textures() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::load_textures ( std::uint32_t  i,
std::uint32_t  n,
const std::byte *  v 
)
finalvirtual

Implements nngn::Graphics.

◆ memory_types() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::memory_types ( std::size_t  i,
std::size_t  ih,
MemoryType p 
) const
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ memory_types() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::memory_types ( std::size_t  ,
std::size_t  ,
MemoryType  
) const
finalvirtual

Implements nngn::Graphics.

◆ n_device_extensions() [1/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_device_extensions ( std::size_t  i) const
finalvirtual

Implements nngn::Graphics.

◆ n_device_extensions() [2/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_device_extensions ( std::size_t  i) const
finalvirtual

Implements nngn::Graphics.

◆ n_devices() [1/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_devices ( void  ) const
finalvirtual

Implements nngn::Graphics.

◆ n_devices() [2/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_devices ( void  ) const
finalvirtual

Implements nngn::Graphics.

◆ n_extensions() [1/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_extensions ( void  ) const
finalvirtual

Implements nngn::Graphics.

◆ n_extensions() [2/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_extensions ( void  ) const
finalvirtual

Implements nngn::Graphics.

◆ n_heaps() [1/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_heaps ( std::size_t  i) const
finalvirtual

Implements nngn::Graphics.

◆ n_heaps() [2/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_heaps ( std::size_t  i) const
finalvirtual

Implements nngn::Graphics.

◆ n_layers() [1/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_layers ( void  ) const
finalvirtual

Implements nngn::Graphics.

Here is the caller graph for this function:

◆ n_layers() [2/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_layers ( void  ) const
finalvirtual

Implements nngn::Graphics.

◆ n_memory_types() [1/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_memory_types ( std::size_t  ih,
std::size_t  i 
) const
finalvirtual

Implements nngn::Graphics.

◆ n_memory_types() [2/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_memory_types ( std::size_t  ih,
std::size_t  i 
) const
finalvirtual

Implements nngn::Graphics.

◆ n_present_modes() [1/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_present_modes ( void  ) const
finalvirtual

Implements nngn::Graphics.

◆ n_present_modes() [2/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_present_modes ( void  ) const
finalvirtual

Implements nngn::Graphics.

◆ n_queue_families() [1/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_queue_families ( std::size_t  i) const
overridevirtual

Implements nngn::Graphics.

◆ n_queue_families() [2/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_queue_families ( std::size_t  i) const
overridevirtual

Implements nngn::Graphics.

◆ name_tex_array() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::name_tex_array ( std::string_view  name,
const TexArray t 
) const
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ name_tex_array() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::name_tex_array ( std::string_view  name,
const TexArray t 
) const
private

◆ present_modes() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::present_modes ( PresentMode p) const
finalvirtual

Implements nngn::Graphics.

◆ present_modes() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::present_modes ( PresentMode p) const
finalvirtual

Implements nngn::Graphics.

◆ queue_families() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::queue_families ( std::size_t  i,
QueueFamily p 
) const
overridevirtual

Implements nngn::Graphics.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ queue_families() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::queue_families ( std::size_t  i,
QueueFamily p 
) const
overridevirtual

Implements nngn::Graphics.

◆ recreate_swapchain() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::recreate_swapchain ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ recreate_swapchain() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::recreate_swapchain ( )
private

◆ render() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::render ( void  )
finalvirtual

Reimplemented from nngn::GLFWBackend.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::render ( )
finalvirtual

Reimplemented from nngn::GLFWBackend.

◆ resize() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::resize ( int  ,
int   
)
finalprivatevirtual

Reimplemented from nngn::GLFWBackend.

Here is the call graph for this function:

◆ resize() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::resize ( int  ,
int   
)
finalprivatevirtual

Reimplemented from nngn::GLFWBackend.

◆ resize_font() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::resize_font ( std::uint32_t  s)
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ resize_font() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::resize_font ( std::uint32_t  s)
finalvirtual

Implements nngn::Graphics.

◆ resize_textures() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::resize_textures ( std::uint32_t  s)
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ resize_textures() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::resize_textures ( std::uint32_t  s)
finalvirtual

Implements nngn::Graphics.

◆ selected_device() [1/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::selected_device ( void  ) const
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ selected_device() [2/2]

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::selected_device ( void  ) const
finalvirtual

Implements nngn::Graphics.

◆ set_automatic_exposure() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_automatic_exposure ( bool  b)
finalvirtual

Implements nngn::Graphics.

◆ set_automatic_exposure() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_automatic_exposure ( bool  b)
finalvirtual

Implements nngn::Graphics.

◆ set_bloom_amount() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_bloom_amount ( float  a)
finalvirtual

Implements nngn::Graphics.

◆ set_bloom_amount() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_bloom_amount ( float  a)
finalvirtual

Implements nngn::Graphics.

◆ set_bloom_blur_passes() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_bloom_blur_passes ( std::size_t  n)
finalvirtual

Implements nngn::Graphics.

◆ set_bloom_blur_passes() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_bloom_blur_passes ( std::size_t  n)
finalvirtual

Implements nngn::Graphics.

◆ set_bloom_blur_size() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_bloom_blur_size ( float  n)
finalvirtual

Implements nngn::Graphics.

◆ set_bloom_blur_size() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_bloom_blur_size ( float  n)
finalvirtual

Implements nngn::Graphics.

◆ set_bloom_downscale() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_bloom_downscale ( std::size_t  d)
finalvirtual

Implements nngn::Graphics.

◆ set_bloom_downscale() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_bloom_downscale ( std::size_t  d)
finalvirtual

Implements nngn::Graphics.

◆ set_bloom_threshold() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_bloom_threshold ( float  t)
finalvirtual

Implements nngn::Graphics.

◆ set_bloom_threshold() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_bloom_threshold ( float  t)
finalvirtual

Implements nngn::Graphics.

◆ set_blur_downscale() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_blur_downscale ( std::size_t  d)
finalvirtual

Implements nngn::Graphics.

◆ set_blur_downscale() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_blur_downscale ( std::size_t  d)
finalvirtual

Implements nngn::Graphics.

◆ set_blur_passes() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_blur_passes ( std::size_t  n)
finalvirtual

Implements nngn::Graphics.

◆ set_blur_passes() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_blur_passes ( std::size_t  n)
finalvirtual

Implements nngn::Graphics.

◆ set_blur_size() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_blur_size ( float  n)
finalvirtual

Implements nngn::Graphics.

◆ set_blur_size() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_blur_size ( float  n)
finalvirtual

Implements nngn::Graphics.

◆ set_buffer_capacity() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_buffer_capacity ( u32  b,
u64  size 
)
final
Here is the call graph for this function:

◆ set_buffer_capacity() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_buffer_capacity ( u32  b,
u64  size 
)
final

◆ set_buffer_size() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_buffer_size ( u32  b,
u64  size 
)
final
Here is the call graph for this function:

◆ set_buffer_size() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_buffer_size ( u32  ,
u64  size 
)
final

◆ set_camera() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_camera ( const Camera c)
finalvirtual

Reimplemented from nngn::GLFWBackend.

Here is the call graph for this function:

◆ set_camera() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_camera ( const Camera c)
finalvirtual

Reimplemented from nngn::GLFWBackend.

◆ set_camera_updated() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_camera_updated ( void  )
inlinefinalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_camera_updated() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_camera_updated ( void  )
inlinefinalvirtual

Implements nngn::Graphics.

◆ set_exposure() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_exposure ( float  e)
finalvirtual

Implements nngn::Graphics.

◆ set_exposure() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_exposure ( float  e)
finalvirtual

Implements nngn::Graphics.

◆ set_HDR_mix() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_HDR_mix ( float  m)
finalvirtual

Implements nngn::Graphics.

◆ set_HDR_mix() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_HDR_mix ( float  m)
finalvirtual

Implements nngn::Graphics.

◆ set_lighting() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_lighting ( const Lighting l)
finalvirtual

Reimplemented from nngn::GLFWBackend.

Here is the call graph for this function:

◆ set_lighting() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_lighting ( const Lighting l)
finalvirtual

Reimplemented from nngn::GLFWBackend.

◆ set_lighting_updated() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_lighting_updated ( )
inlinefinalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_lighting_updated() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_lighting_updated ( )
inlinefinalvirtual

Implements nngn::Graphics.

◆ set_n_frames() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_n_frames ( std::size_t  n)
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ set_n_frames() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_n_frames ( std::size_t  n)
finalvirtual

Implements nngn::Graphics.

◆ set_n_swap_chain_images() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_n_swap_chain_images ( std::size_t  n)
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ set_n_swap_chain_images() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_n_swap_chain_images ( std::size_t  n)
finalvirtual

Implements nngn::Graphics.

◆ set_render_list() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_render_list ( const RenderList l)
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ set_render_list() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_render_list ( const RenderList l)
finalvirtual

Implements nngn::Graphics.

◆ set_shadow_cube_size() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_shadow_cube_size ( u32  s)
final
Here is the caller graph for this function:

◆ set_shadow_cube_size() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_shadow_cube_size ( u32  s)
final

◆ set_shadow_map_size() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_shadow_map_size ( u32  s)
final
Here is the caller graph for this function:

◆ set_shadow_map_size() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::set_shadow_map_size ( u32  s)
final

◆ set_swap_interval() [1/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_swap_interval ( int  i)
finalvirtual

Reimplemented from nngn::GLFWBackend.

Here is the call graph for this function:

◆ set_swap_interval() [2/2]

void anonymous_namespace{vulkan.cpp}::VulkanBackend::set_swap_interval ( int  i)
finalvirtual

Reimplemented from nngn::GLFWBackend.

◆ stats() [1/2]

nngn::GraphicsStats anonymous_namespace{vulkan.cpp}::VulkanBackend::stats ( )
overridevirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ stats() [2/2]

nngn::GraphicsStats anonymous_namespace{vulkan.cpp}::VulkanBackend::stats ( )
overridevirtual

Implements nngn::Graphics.

◆ submit() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::submit ( VkQueue  queue,
VkCommandBuffer  cmd,
VkPipelineStageFlags  dst_mask = {},
VkSemaphore  wait = {},
VkSemaphore  signal = {},
VkFence  fence = {} 
)
staticprivate
Here is the call graph for this function:
Here is the caller graph for this function:

◆ submit() [2/2]

static bool anonymous_namespace{vulkan.cpp}::VulkanBackend::submit ( VkQueue  queue,
VkCommandBuffer  cmd,
VkPipelineStageFlags  dst_mask = {},
VkSemaphore  wait = {},
VkSemaphore  signal = {},
VkFence  fence = {} 
)
staticprivate

◆ surface_info() [1/2]

auto anonymous_namespace{vulkan.cpp}::VulkanBackend::surface_info ( ) const
finalvirtual

Implements nngn::Graphics.

◆ surface_info() [2/2]

SurfaceInfo anonymous_namespace{vulkan.cpp}::VulkanBackend::surface_info ( ) const
finalvirtual

Implements nngn::Graphics.

◆ update_render_list() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::update_render_list ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_render_list() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::update_render_list ( )
private

◆ version() [1/2]

auto anonymous_namespace{vulkan.cpp}::VulkanBackend::version ( void  ) const
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ version() [2/2]

Version anonymous_namespace{vulkan.cpp}::VulkanBackend::version ( void  ) const
finalvirtual

Implements nngn::Graphics.

◆ vsync() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::vsync ( )
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vsync() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::vsync ( )
finalvirtual

Implements nngn::Graphics.

Here is the call graph for this function:

◆ write_to_buffer() [1/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::write_to_buffer ( u32  b,
u64  offset,
u64  n,
u64  size,
void *  data,
void   fvoid *, void *, u64, u64 
)
final

◆ write_to_buffer() [2/2]

bool anonymous_namespace{vulkan.cpp}::VulkanBackend::write_to_buffer ( u32  b,
u64  offset,
u64  n,
u64  size,
void *  data,
void   fvoid *, void *, u64, u64 
)
final

Member Data Documentation

◆ buffers

Buffers anonymous_namespace{vulkan.cpp}::VulkanBackend::buffers = {}
private

◆ camera_descriptor_sets

CameraDescriptorSets anonymous_namespace{vulkan.cpp}::VulkanBackend::camera_descriptor_sets = {}
private

◆ cmd_pools

std::vector< nngn::CommandPool > anonymous_namespace{vulkan.cpp}::VulkanBackend::cmd_pools = {}
private

◆ cur_frame

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::cur_frame = {}
private

◆ depth_pass

VkRenderPass anonymous_namespace{vulkan.cpp}::VulkanBackend::depth_pass = {}
private

◆ descriptor_pool

nngn::DescriptorPool anonymous_namespace{vulkan.cpp}::VulkanBackend::descriptor_pool = {}
private

◆ dev

nngn::Device anonymous_namespace{vulkan.cpp}::VulkanBackend::dev = {}
private

◆ dev_mem

nngn::DeviceMemory anonymous_namespace{vulkan.cpp}::VulkanBackend::dev_mem = {}
private

◆ flags

nngn::Flags< Flag > anonymous_namespace{vulkan.cpp}::VulkanBackend::flags = {}
private

◆ font_size

u32 anonymous_namespace{vulkan.cpp}::VulkanBackend::font_size = {}
private

◆ font_tex

TexArray anonymous_namespace{vulkan.cpp}::VulkanBackend::font_tex = {}
private

◆ frame_fences

std::vector< VkFence > anonymous_namespace{vulkan.cpp}::VulkanBackend::frame_fences = {}
private

◆ instance

nngn::Instance anonymous_namespace{vulkan.cpp}::VulkanBackend::instance = {}
private

◆ instance_info

nngn::InstanceInfo anonymous_namespace{vulkan.cpp}::VulkanBackend::instance_info = {}
private

◆ lighting_descriptor_sets

LightingDescriptorSets anonymous_namespace{vulkan.cpp}::VulkanBackend::lighting_descriptor_sets = {}
private

◆ log_level

LogLevel anonymous_namespace{vulkan.cpp}::VulkanBackend::log_level
private

◆ m_device_infos

std::vector< nngn::DeviceInfo > anonymous_namespace{vulkan.cpp}::VulkanBackend::m_device_infos = {}
private

◆ m_memory_infos

std::vector< nngn::DeviceMemoryInfo > anonymous_namespace{vulkan.cpp}::VulkanBackend::m_memory_infos = {}
private

◆ m_stats

nngn::GraphicsStats anonymous_namespace{vulkan.cpp}::VulkanBackend::m_stats = {}
private

◆ m_surface_info

nngn::SurfaceInfo anonymous_namespace{vulkan.cpp}::VulkanBackend::m_surface_info = {}
private

◆ m_version

Version anonymous_namespace{vulkan.cpp}::VulkanBackend::m_version = {}
private

◆ n_frames

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_frames = {}
private

◆ n_swap_chain

std::size_t anonymous_namespace{vulkan.cpp}::VulkanBackend::n_swap_chain = {}
private

◆ pipeline_cache

VkPipelineCache anonymous_namespace{vulkan.cpp}::VulkanBackend::pipeline_cache = {}
private

◆ pipeline_conf

std::vector< PipelineConfiguration > anonymous_namespace{vulkan.cpp}::VulkanBackend::pipeline_conf = {{}}
private

◆ pipeline_layout

VkPipelineLayout anonymous_namespace{vulkan.cpp}::VulkanBackend::pipeline_layout = {}
private

◆ pipelines

std::vector< VkPipeline > anonymous_namespace{vulkan.cpp}::VulkanBackend::pipelines = {}
private

◆ post

Post anonymous_namespace{vulkan.cpp}::VulkanBackend::post = {}
private

◆ render_list

RenderList anonymous_namespace{vulkan.cpp}::VulkanBackend::render_list = {}
private

◆ render_pass

VkRenderPass anonymous_namespace{vulkan.cpp}::VulkanBackend::render_pass = {}
private

◆ sampler

VkSampler anonymous_namespace{vulkan.cpp}::VulkanBackend::sampler = {}
private

◆ shaders

Shaders anonymous_namespace{vulkan.cpp}::VulkanBackend::shaders = {}
private

◆ shadow_cube

ShadowCube anonymous_namespace{vulkan.cpp}::VulkanBackend::shadow_cube = {}
private

◆ shadow_map

ShadowMap anonymous_namespace{vulkan.cpp}::VulkanBackend::shadow_map = {}
private

◆ shadow_sampler

VkSampler anonymous_namespace{vulkan.cpp}::VulkanBackend::shadow_sampler = {}
private

◆ stg_buffer

nngn::StagingBuffer anonymous_namespace{vulkan.cpp}::VulkanBackend::stg_buffer = {}
private

◆ swap_chain

nngn::SwapChain anonymous_namespace{vulkan.cpp}::VulkanBackend::swap_chain = {}
private

◆ tex

TexArray anonymous_namespace{vulkan.cpp}::VulkanBackend::tex = {}
private

◆ texture_descriptor_sets

TextureDescriptorSets anonymous_namespace{vulkan.cpp}::VulkanBackend::texture_descriptor_sets = {}
private

◆ ubo

nngn::DedicatedBuffer anonymous_namespace{vulkan.cpp}::VulkanBackend::ubo = {}
private

The documentation for this class was generated from the following files: