Skip to content

Commit

Permalink
Add new plugin: real time shader selection
Browse files Browse the repository at this point in the history
  • Loading branch information
Dawid-Lorenz-Mobica committed Jul 4, 2023
1 parent e644a87 commit 43bdaf0
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 18 deletions.
8 changes: 4 additions & 4 deletions framework/api_vulkan_sample.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,13 @@ void ApiVulkanSample::update(float delta_time)
}
}

void ApiVulkanSample::update_overlay(float delta_time, const std::function<void()>& additionalUI)
void ApiVulkanSample::update_overlay(float delta_time, const std::function<void()>& additional_ui)
{
if (gui)
{
gui->show_simple_window(get_name(), vkb::to_u32(1.0f / delta_time), [this, additionalUI]() {
gui->show_simple_window(get_name(), vkb::to_u32(1.0f / delta_time), [this, additional_ui]() {
on_update_ui_overlay(gui->get_drawer());
additionalUI();
additional_ui();
});

gui->update(delta_time);
Expand Down Expand Up @@ -862,7 +862,7 @@ void ApiVulkanSample::on_update_ui_overlay(vkb::Drawer &drawer)

void ApiVulkanSample::store_shader(const vkb::ShaderSourceLanguage& shaderLanguage, const std::vector<std::pair<vkb::ShaderType, std::string>>& listOfShader)
{
platform->get_available_shaders().insert({shaderLanguage, listOfShader});
// platform->get_available_shaders().insert({shaderLanguage, listOfShader});
}

void ApiVulkanSample::create_swapchain_buffers()
Expand Down
7 changes: 3 additions & 4 deletions framework/api_vulkan_sample.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ class ApiVulkanSample : public vkb::VulkanSample

virtual void update(float delta_time) override;

virtual void update_overlay(float delta_time, const std::function<void()>& additionalUI) override;
virtual void update_overlay(float delta_time, const std::function<void()>& additional_ui) override;

virtual bool resize(const uint32_t width, const uint32_t height) override;

Expand Down Expand Up @@ -365,18 +365,17 @@ class ApiVulkanSample : public vkb::VulkanSample
virtual void on_update_ui_overlay(vkb::Drawer &drawer);

/**
<<<<<<< HEAD
* @brief Initializes the UI. Can be overridden to customize the way it is displayed.
*/
virtual void prepare_gui();
=======

/**
* @brief Stores a list of shaders for the active sample, used by plugins to dynamically change the shader
*
* @param shaderLanguage The shader language for which the shader list will be provided
* @param listOfShader The shader list, where paths and shader types are provided
*/
void store_shader(const vkb::ShaderSourceLanguage& shaderLanguage, const std::vector<std::pair<vkb::ShaderType, std::string>>& listOfShader);
>>>>>>> 4768884 (Add new plugin real time shader selection)

private:
/** brief Indicates that the view (position, rotation) has changed and buffers containing camera matrices need to be updated */
Expand Down
4 changes: 2 additions & 2 deletions framework/hpp_api_vulkan_sample.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -417,11 +417,11 @@ vk::PipelineShaderStageCreateInfo HPPApiVulkanSample::load_shader(const std::str
return vk::PipelineShaderStageCreateInfo({}, stage, shader_modules.back(), "main");
}

void HPPApiVulkanSample::update_overlay(float delta_time, const std::function<void()>& additionalUI)
void HPPApiVulkanSample::update_overlay(float delta_time, const std::function<void()>& additional_ui)
{
if (gui)
{
gui->show_simple_window(get_name(), vkb::to_u32(1.0f / delta_time), [this, additionalUI]() { on_update_ui_overlay(gui->get_drawer()); additionalUI(); });
gui->show_simple_window(get_name(), vkb::to_u32(1.0f / delta_time), [this, additional_ui]() { on_update_ui_overlay(gui->get_drawer()); additional_ui(); });

gui->update(delta_time);

Expand Down
3 changes: 2 additions & 1 deletion framework/hpp_api_vulkan_sample.h
Original file line number Diff line number Diff line change
Expand Up @@ -286,8 +286,9 @@ class HPPApiVulkanSample : public vkb::HPPVulkanSample
/**
* @brief Updates the overlay
* @param delta_time The time taken since the last frame
* @param additional_ui Function that implements an additional Gui
*/
void update_overlay(float delta_time, const std::function<void()>& additionalUI);
void update_overlay(float delta_time, const std::function<void()>& additional_ui);

/**
* @brief If the gui is enabled, then record the drawing commands to a command buffer
Expand Down
2 changes: 1 addition & 1 deletion framework/platform/application.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ void Application::update(float delta_time)
}


void Application::update_overlay(float delta_time, const std::function<void()>& additionalUI)
void Application::update_overlay(float delta_time, const std::function<void()>& additional_ui)
{

}
Expand Down
8 changes: 4 additions & 4 deletions framework/platform/application.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,10 @@ class Application

/**
* @brief Main loop sample overlay events
* @param delta_time The time taken since the last frame
* @param additional_ui Function that implements an additional Gui
*/
virtual void update_overlay(float delta_time, const std::function<void()>& additionalUI = [](){});
virtual void update_overlay(float delta_time, const std::function<void()>& additional_ui = [](){});

/**
* @brief Indicates that the plugin wants to change the shader in the sample
Expand Down Expand Up @@ -89,7 +91,6 @@ class Application

DebugInfo &get_debug_info();

<<<<<<< HEAD
inline bool should_close() const
{
return requested_close;
Expand All @@ -101,9 +102,8 @@ class Application
{
requested_close = true;
}
=======

std::weak_ptr<Gui> get_gui();
>>>>>>> 4768884 (Add new plugin real time shader selection)

protected:
float fps{0.0f};
Expand Down
2 changes: 1 addition & 1 deletion framework/vulkan_sample.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ void VulkanSample::update(float delta_time)
render_context->submit(command_buffer);
}

void VulkanSample::update_overlay(float delta_time, const std::function<void()>& additionalUI)
void VulkanSample::update_overlay(float delta_time, const std::function<void()>& additional_ui)
{
}

Expand Down
4 changes: 3 additions & 1 deletion framework/vulkan_sample.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,10 @@ class VulkanSample : public Application

/**
* @brief Main loop sample overlay events
* @param delta_time The time taken since the last frame
* @param additional_ui Function that implements an additional Gui
*/
virtual void update_overlay(float delta_time, const std::function<void()>& additionalUI = [](){}) override;
virtual void update_overlay(float delta_time, const std::function<void()>& additional_ui = [](){}) override;

/**
* @brief Indicates that the plugin wants to change the shader in the sample
Expand Down

0 comments on commit 43bdaf0

Please sign in to comment.