/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #pragma once #include #include #include namespace OpenVulkano { struct ShaderTableEntry final { const char *entryName; const unsigned char *data; long int size; }; class ShaderRegistry final { std::map> m_shaderMap; ShaderRegistry(); public: static ShaderRegistry& GetInstance(); void RegisterShaderTable(const ShaderTableEntry* table, uint32_t size); void RegisterShader(std::string_view name, std::pair); std::pair GetShader(std::string_view shaderName); }; }