
.. _program_listing_file_Src_GraphicsEngineVulkan_renderer_SceneUBO.hpp:

Program Listing for File SceneUBO.hpp
=====================================

|exhale_lsh| :ref:`Return to documentation for file <file_Src_GraphicsEngineVulkan_renderer_SceneUBO.hpp>` (``Src/GraphicsEngineVulkan/renderer/SceneUBO.hpp``)

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

.. code-block:: cpp

   // this little "hack" is needed for using it on the
   // CPU side as well for the GPU side :)
   // inspired by the NVDIDIA tutorial:
   // https://nvpro-samples.github.io/vk_raytracing_tutorial_KHR/
   
   #ifdef __cplusplus
   #pragma once
   #include <glm/mat4x4.hpp>
   #include <glm/vec2.hpp>
   #include <glm/vec3.hpp>
   #include <glm/vec4.hpp>
   // GLSL Type
   using vec2 = glm::vec2;
   using vec3 = glm::vec3;
   using vec4 = glm::vec4;
   using mat4 = glm::mat4;
   using uint = unsigned int;
   namespace Kataglyphis::VulkanRendererInternals {
   #endif
   
   struct SceneUBO
   {
       vec4 light_dir;
       vec4 view_dir;
       // xyz is position; w = fov
       vec4 cam_pos;
   };
   #ifdef __cplusplus
   }// namespace Kataglyphis::VulkanRendererInternals
   #endif
