Program Listing for File OmniShadowMapPass.ixx

Program Listing for File OmniShadowMapPass.ixx#

Return to documentation for file (Src/GraphicsEngineOpenGL/scene/light/point_light/OmniShadowMapPass.ixx)

module;

#include <memory>
#include <glad/glad.h>
#include <glm/ext/matrix_float4x4.hpp>
#include <cstdint>
#include <sstream>
#include <vector>

export module kataglyphis.opengl.omni_shadow_map_pass;

import kataglyphis.opengl.render_pass_scene_dependend;
import kataglyphis.opengl.point_light;
import kataglyphis.opengl.point_light.omni_dir_shadow_map;
import kataglyphis.opengl.scene;
import kataglyphis.opengl.omni_dir_shadow_shader_program;

export class OmniShadowMapPass final : public RenderPassSceneDependend
{
  public:
    OmniShadowMapPass();

    void execute(const std::shared_ptr<PointLight> &p_light, const std::shared_ptr<Scene> &scene);

    void set_game_object_uniforms(glm::mat4 model, glm::mat4 normal_model) override;

    void create_shader_program() override;

    ~OmniShadowMapPass();

  private:
    std::shared_ptr<OmniDirShadowShaderProgram> shader_program;
};