Skip to content

Class atlas::vk::vk_renderer

ClassList > atlas > vk > vk_renderer

Something to consider for mesh loading. More...

  • #include <vk_renderer.hpp>

Inherits the following classes: atlas::render_context

Public Functions

Type Name
vk_renderer (const vk_swapchain & p_swapchain, const std::string & p_tag)
~vk_renderer () override

Public Functions inherited from atlas::render_context

See atlas::render_context

Type Name
void begin_frame (const vk::vk_command_buffer & p_current, const vk::vk_swapchain & p_swapchain_handler)
void end_frame ()
void set_background_color (const std::array< float, 4 > & p_color)
virtual ~render_context () = default

Detailed Description

How will meshes get loaded?

There are a few ways for considering for the base approach, which are: TODO: These are things to think about how this may happen because I want to make this lightweight in the sense the data isnt continuously being modified. Taking a looking at minimizing the loading state of vulkan implementation-specific meshes * While also making the way how mesh components are being added the same as before

Something to avoid is the entities containing the geometry data itself but being able to reference to their respective geometry data that are getting submitted to the GPU

  • Batching ID's into hash table that contains the actual geometry data
  • Using ID to search up the mesh loaded and cached into the map, then reuse that geometry whenever the uniforms are changed
  • This way we aren't reloading in the same mesh multiple times, treating the hash table as a slot of the mesh contained within that scene
  • Potentially std::map<std::string, std::map<std::string, vk::mesh_metadata>> m_geometries
    • Idea is the std::string is the geometries within this scene, the data format is: <scene_str, <mesh_str, mesh_metadata>>

Public Functions Documentation

function vk_renderer

atlas::vk::vk_renderer::vk_renderer (
    const vk_swapchain & p_swapchain,
    const std::string & p_tag
) 

function ~vk_renderer

atlas::vk::vk_renderer::~vk_renderer () override


The documentation for this class was generated from the following file TheAtlasEngine/atlas/drivers/vulkan-cpp/vk_renderer.hpp