Class Application

Inheritance Relationships

Base Type

Class Documentation

class inexor::vulkan_renderer::Application : public inexor::vulkan_renderer::VulkanRenderer

Public Functions

Application(int argc, char **argv)
void key_callback(GLFWwindow *window, int key, int scancode, int action, int mods)

Call glfwSetKeyCallback.

Parameters
  • window – The window that received the event.

  • key – The keyboard key that was pressed or released.

  • scancode – The system-specific scancode of the key.

  • action – GLFW_PRESS, GLFW_RELEASE or GLFW_REPEAT.

  • mods – Bit field describing which modifier keys were held down.

void cursor_position_callback(GLFWwindow *window, double x_pos, double y_pos)

Call glfwSetCursorPosCallback.

Parameters
  • window – The window that received the event.

  • x_pos – The new x-coordinate, in screen coordinates, of the cursor.

  • y_pos – The new y-coordinate, in screen coordinates, of the cursor.

void mouse_button_callback(GLFWwindow *window, int button, int action, int mods)

Call glfwSetMouseButtonCallback.

Parameters
  • window – The window that received the event.

  • button – The mouse button that was pressed or released.

  • action – One of GLFW_PRESS or GLFW_RELEASE.

  • mods – Bit field describing which modifier keys were held down.

void mouse_scroll_callback(GLFWwindow *window, double x_offset, double y_offset)

Call camera’s process_mouse_scroll method.

Parameters
  • window – The window that received the event.

  • x_offset – The change of x-offset of the mouse wheel.

  • y_offset – The change of y-offset of the mouse wheel.

void run()

Private Functions

void load_toml_configuration_file(const std::string &file_name)

Load the configuration of the renderer from a TOML configuration file.

file_name The TOML configuration file.

Note

It was collectively decided not to use JSON for configuration files.

void load_textures()
void load_shaders()
void load_octree_geometry(bool initialize)
Parameters

initialize – Initialize worlds with a fixed seed, which is useful for benchmarking and testing

void setup_vulkan_debug_callback()
void setup_window_and_input_callbacks()
void update_imgui_overlay()
void check_application_specific_features()
void update_uniform_buffers()
void check_octree_collisions()

Use the camera’s position and view direction vector to check for ray-octree collisions with all octrees.

void process_mouse_input()

Private Members

std::vector<std::string> m_vertex_shader_files
std::vector<std::string> m_fragment_shader_files
std::vector<std::string> m_texture_files
std::vector<std::string> m_gltf_model_files
std::unique_ptr<input::KeyboardMouseInputData> m_input_data
bool m_enable_validation_layers = {true}
std::vector<std::shared_ptr<world::Cube>> m_worlds

Inexor engine supports a variable number of octrees.

bool m_stop_on_validation_message = {false}