#pragma once #include #include "PICA/gpu.hpp" #include "PICA/regs.hpp" #include "helpers.hpp" namespace PICA::ShaderGen { // Graphics API this shader is targetting enum class API { GL, GLES, Vulkan }; // Shading language to use (Only GLSL for the time being) enum class Language { GLSL }; class FragmentGenerator { using PICARegs = std::array; API api; Language language; void compileTEV(std::string& shader, int stage, const PICARegs& regs); public: FragmentGenerator(API api, Language language) : api(api), language(language) {} std::string generate(const PICARegs& regs); }; }; // namespace PICA::ShaderGen