
.. _program_listing_file_Src_GraphicsEngineOpenGL_scene_sky_box_SkyBox.ixx:

Program Listing for File SkyBox.ixx
===================================

|exhale_lsh| :ref:`Return to documentation for file <file_Src_GraphicsEngineOpenGL_scene_sky_box_SkyBox.ixx>` (``Src/GraphicsEngineOpenGL/scene/sky_box/SkyBox.ixx``)

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

.. code-block:: cpp

   module;
   
   #include <glad/glad.h>
   #include <glm/glm.hpp>
   #include <glm/gtc/matrix_transform.hpp>
   #include <glm/gtc/type_ptr.hpp>
   #include <memory>
   
   #include "hostDevice/GlobalValues.hpp"
   
   export module kataglyphis.opengl.sky_box;
   
   import kataglyphis.opengl.shader_program;
   import kataglyphis.opengl.mesh;
   
   export class SkyBox
   {
     public:
       SkyBox();
   
       void draw_sky_box(glm::mat4 projection_matrix,
         glm::mat4 view_matrix,
         GLuint window_width,
         GLuint window_height,
         GLfloat delta_time);
   
       void reload();
   
       ~SkyBox();
   
     private:
       GLfloat movement_speed = 0.1f;
   
       GLfloat shader_playback_time;
   
       std::shared_ptr<Mesh> sky_mesh;
       std::shared_ptr<ShaderProgram> shader_program;
   
       GLuint texture_id{};
   };
