Add compute shader support

This commit is contained in:
2026-03-16 12:58:09 +01:00
parent 3a7b137165
commit df0da96c38
2 changed files with 3 additions and 8 deletions

View File

@@ -58,7 +58,7 @@ public:
static bool IsEntryShader(const fs::path& p) static bool IsEntryShader(const fs::path& p)
{ {
const auto ext = ToLower(p.extension().string()); const auto ext = ToLower(p.extension().string());
return ext == ".vert" || ext == ".frag"; return ext == ".vert" || ext == ".frag" || ext == ".comp";
} }
static bool IsIncludeOnlyShader(const fs::path& p) static bool IsIncludeOnlyShader(const fs::path& p)
@@ -114,6 +114,7 @@ private:
const auto ext = ToLower(p.extension().string()); const auto ext = ToLower(p.extension().string());
if (ext == ".vert") return EShLangVertex; if (ext == ".vert") return EShLangVertex;
if (ext == ".frag") return EShLangFragment; if (ext == ".frag") return EShLangFragment;
if (ext == ".comp") return EShLangCompute;
throw std::runtime_error("Unknown entry shader stage extension: " + p.string()); throw std::runtime_error("Unknown entry shader stage extension: " + p.string());
} }

View File

@@ -1,6 +1,3 @@
// main.cpp (updated)
// Standard
#include <filesystem> #include <filesystem>
#include <fstream> #include <fstream>
#include <string> #include <string>
@@ -8,16 +5,12 @@
#include <cctype> #include <cctype>
#include <chrono> #include <chrono>
#include <stdexcept> #include <stdexcept>
#include <cstdlib>
// Manifest
#include <nlohmann/json.hpp> #include <nlohmann/json.hpp>
// Logging
#include <spdlog/spdlog.h> #include <spdlog/spdlog.h>
#include <spdlog/sinks/stdout_color_sinks.h> #include <spdlog/sinks/stdout_color_sinks.h>
// Your shader compiler header
#include "ShaderCompiler.h" #include "ShaderCompiler.h"
namespace fs = std::filesystem; namespace fs = std::filesystem;
@@ -122,6 +115,7 @@ int main(int argc, char** argv) {
if (args.clean && fs::exists(args.output)) { if (args.clean && fs::exists(args.output)) {
spdlog::info("Cleaning output dir: {}", args.output.string()); spdlog::info("Cleaning output dir: {}", args.output.string());
fs::remove_all(args.output); fs::remove_all(args.output);
return 0;
} }
fs::create_directories(args.output); fs::create_directories(args.output);