Class VulkanRenderer

Inheritance Relationships

Derived Type

Class Documentation

class inexor::vulkan_renderer::VulkanRenderer

Subclassed by inexor::vulkan_renderer::Application

Public Functions

VulkanRenderer() = default
VulkanRenderer(const VulkanRenderer&) = delete
VulkanRenderer(VulkanRenderer&&) = delete
~VulkanRenderer()
VulkanRenderer &operator=(const VulkanRenderer&) = delete
VulkanRenderer &operator=(VulkanRenderer&&) = delete
void calculate_memory_budget()

Run Vulkan memory allocator’s memory statistics.

Public Members

bool m_window_resized = {false}
float m_time_passed = {0.0f}

Necessary for taking into account the relative speed of the system’s CPU.

TimeStep m_stopwatch

Protected Functions

void setup_render_graph()
void generate_octree_indices()
void recreate_swapchain()
void render_frame()

Protected Attributes

std::shared_ptr<VulkanSettingsDecisionMaker> m_settings_decision_maker{std::make_shared<VulkanSettingsDecisionMaker>()}
std::vector<VkPipelineShaderStageCreateInfo> m_shader_stages
VkDebugReportCallbackEXT m_debug_report_callback = {VK_NULL_HANDLE}
bool m_debug_report_callback_initialised = {false}
TimeStep m_time_step
std::uint32_t m_window_width = {0}
std::uint32_t m_window_height = {0}
wrapper::Window::Mode m_window_mode = {wrapper::Window::Mode::WINDOWED}
std::string m_window_title
FPSCounter m_fps_counter
bool m_vsync_enabled = {false}
std::unique_ptr<Camera> m_camera
std::unique_ptr<wrapper::Window> m_window
std::unique_ptr<wrapper::Instance> m_instance
std::unique_ptr<wrapper::Device> m_device
std::unique_ptr<wrapper::WindowSurface> m_surface
std::unique_ptr<wrapper::Swapchain> m_swapchain
std::unique_ptr<wrapper::CommandPool> m_command_pool
std::unique_ptr<ImGUIOverlay> m_imgui_overlay
std::unique_ptr<wrapper::Fence> m_frame_finished_fence
std::unique_ptr<wrapper::Semaphore> m_image_available_semaphore
std::unique_ptr<RenderGraph> m_render_graph
std::vector<wrapper::Shader> m_shaders
std::vector<wrapper::GpuTexture> m_textures
std::vector<wrapper::UniformBuffer> m_uniform_buffers
std::vector<wrapper::ResourceDescriptor> m_descriptors
std::vector<OctreeGpuVertex> m_octree_vertices
std::vector<std::uint32_t> m_octree_indices
TextureResource *m_back_buffer = {nullptr}
BufferResource *m_index_buffer = {nullptr}
BufferResource *m_vertex_buffer = {nullptr}