TheAtlasEngine
 
Loading...
Searching...
No Matches
atlas::vulkan::render_system Class Referenceexport

Something to consider for mesh loading. More...

Inheritance diagram for atlas::vulkan::render_system:
atlas::renderer_system

Public Member Functions

 render_system (ref< graphics_context > p_context, const window_params &p_params, uint32_t p_image_size, const std::string &)
 
- Public Member Functions inherited from atlas::renderer_system
void preload (const VkRenderPass &p_renderpass)
 responsibility is to preload any data that is necessary to be loaded before being rendered
 
void begin_frame (const vk::command_buffer &p_current, const window_params &p_params, const VkRenderPass &p_renderpass, const VkFramebuffer &p_framebuffer, const glm::mat4 &p_proj_view, uint32_t p_current_frame)
 indicator of when the start of the frame is
 
void end_frame ()
 Intended to use to indicate when to end recording to the GPU in the current frame.
 
void set_background_color (const glm::vec4 &p_color)
 sets the background color and request that change to the graphics API
 
void current_scene_context (ref< scene > p_scene)
 

Detailed Description

Something to consider for mesh loading.

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>>

Member Function Documentation

◆ background_color()

void atlas::vulkan::render_system::background_color ( const glm::vec4 &  p_color)
inlineoverrideexportprivatevirtual

◆ current_scene()

void atlas::vulkan::render_system::current_scene ( ref< scene p_scene_ctx)
inlineoverrideexportprivatevirtual

◆ post_frame()

void atlas::vulkan::render_system::post_frame ( )
inlineoverrideexportprivatevirtual

◆ preload_assets()

void atlas::vulkan::render_system::preload_assets ( const VkRenderPass p_renderpass)
inlineoverrideexportprivatevirtual

◆ start_frame()

void atlas::vulkan::render_system::start_frame ( const vk::command_buffer &  p_current,
const window_params p_settings,
const VkRenderPass p_renderpass,
const VkFramebuffer p_framebuffer,
const glm::mat4 &  p_proj_view,
uint32_t  p_current_frame 
)
inlineoverrideexportprivatevirtual

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