#pragma once #include #include #include #include #include namespace iris { struct ShaderDesc { // Name of the shader, filename if loaded from file std::string name; // Source code of the shader std::string source; // Entry name of the shader std::string entry_point; // Shader type enum struct Type { eRayGen, eMiss, eClosestHit, eAnyHit, eIntersection, eCallable, eCompute, } type; // Compiled binary std::vector compiled_binary; static Type shader_type_from_string(std::string_view type); ShaderDesc( const std::string_view path, std::vector defines, std::vector> valued_defines); }; } // namespace iris