Program Listing for File renderingmodule.hpp

Return to documentation for file (/home/runner/work/Legion-Engine/Legion-Engine/legion/engine/rendering/module/renderingmodule.hpp)

#pragma once
#include <rendering/data/importers/texture_importers.hpp>
#include <rendering/systems/renderer.hpp>
#include <rendering/components/renderable.hpp>
#include <rendering/components/light.hpp>
#include <rendering/systems/particle_system_manager.hpp>
#include <rendering/components/point_cloud.hpp>
#include <rendering/systems/pointcloudgeneration.hpp>
#include <rendering/systems/lod_manager.hpp>
#include <rendering/components/point_emitter_data.hpp>
#include <rendering/systems/serilization_rendering_extra.hpp>

namespace legion::rendering
{
    class RenderingModule : public Module
    {
    public:
        virtual void setup() override
        {
            for (cstring extension : stbi_texture_loader::extensions)
                fs::AssetImporter::reportConverter<stbi_texture_loader>(extension);

            reportComponentType<camera>();
            reportComponentType<mesh_renderer>();
            reportComponentType<light>();
            reportSystem<Renderer>();

            reportComponentType<particle>();
            reportComponentType<particle_emitter>();
            reportComponentType<point_emitter_data>();

            reportSystem<ParticleSystemManager>();

            reportComponentType<point_cloud>();
            reportComponentType<lod>();
            reportSystem<PointCloudGeneration>();
            reportSystem<LODManager>();
            reportSystem<SerializationRenderingExtra>();
        }

        virtual priority_type priority() override
        {
            return 99;
        }

    };
}