// SPDX-License-Identifier: LGPL-3.0-only // SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts® export module Crafter.Build:Shader; import std; namespace fs = std::filesystem; namespace Crafter { export enum class ShaderType { Vertex, TessControl, TessEvaluation, Geometry, Fragment, Compute, RayGen, Intersect, AnyHit, ClosestHit, Miss, Callable, Task, Mesh, }; export class Shader { public: fs::path path; std::string entrypoint; ShaderType type; Shader(fs::path&& path, std::string&& entrypoint, ShaderType type); bool Check(const fs::path& outputDir) const; std::string Compile(const fs::path& outputDir, std::span includeDirs) const; }; }