
.. _program_listing_file_Src_GraphicsEngineVulkan_vulkan_base_ShaderHelper.ixx:

Program Listing for File ShaderHelper.ixx
=========================================

|exhale_lsh| :ref:`Return to documentation for file <file_Src_GraphicsEngineVulkan_vulkan_base_ShaderHelper.ixx>` (``Src/GraphicsEngineVulkan/vulkan_base/ShaderHelper.ixx``)

.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS

.. code-block:: cpp

   module;
   
   #include <string>
   #include <string_view>
   #include <vector>
   #include <vulkan/vulkan.hpp>
   
   export module kataglyphis.vulkan.shader_helper;
   
   import kataglyphis.vulkan.config;
   import kataglyphis.vulkan.device;
   
   export namespace Kataglyphis {
   class ShaderHelper
   {
     public:
       ShaderHelper();
   
       void compileShader(const std::string &shader_src_dir, const std::string &shader_name);
       static std::string getShaderSpvDir(const std::string &shader_src_dir, const std::string &shader_name);
   
       static vk::ShaderModule createShaderModule(VulkanDevice *device, const std::vector<char> &code);
   
       ~ShaderHelper();
   
     private:
       std::string target = std::string(" --target-env=vulkan")
         + std::string(Kataglyphis::RendererConfig::vulkanVersionMajor) + "."
         + std::string(Kataglyphis::RendererConfig::vulkanVersionMinor) + " ";
   };
   }// namespace Kataglyphis
