// SPDX-FileCopyrightText: 2024 Joshua Goins // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include #include #include #include #include #include class Device; class ShaderManager { public: explicit ShaderManager(Device &device); spirv_cross::CompilerGLSL getShaderModuleResources(const physis_Shader &shader); VkShaderModule convertShaderModule(const physis_Shader &shader, spv::ExecutionModel executionModel); private: std::vector compileGLSL(std::string_view sourceString, ShaderStage stage); Device &m_device; };