shader zip

This commit is contained in:
NurgazievichR 2025-03-18 15:40:55 +06:00
parent a8689e8b58
commit 2797b9fd3a
3 changed files with 34 additions and 8 deletions

View File

@ -121,11 +121,27 @@ namespace ZL {
}
void ShaderManager::AddShaderFromFiles(const std::string& shaderName, const std::string& vertexShaderFileName, const std::string& fragmentShaderFileName)
void ShaderManager::AddShaderFromFiles(const std::string& shaderName, const std::string& vertexShaderFileName, const std::string& fragmentShaderFileName, const std::string& ZIPFileName)
{
std::string vertexShader = readTextFile(vertexShaderFileName);
std::string fragmentShader = readTextFile(fragmentShaderFileName);
std::string vertexShader;
std::string fragmentShader;
if (!ZIPFileName.empty()){
std::vector<char> vertexShaderData;
std::vector<char> fragmentShaderData;
vertexShaderData = readFileFromZIP(vertexShaderFileName, ZIPFileName);
fragmentShaderData = readFileFromZIP(fragmentShaderFileName, ZIPFileName);
vertexShader = std::string(vertexShaderData.begin(), vertexShaderData.end());
fragmentShader = std::string(fragmentShaderData.begin(), fragmentShaderData.end());
}else{
vertexShader = readTextFile(vertexShaderFileName);
fragmentShader = readTextFile(fragmentShaderFileName);
}
///std::cout << "Shader: "<< vertexShader << std::endl;
shaderResourceMap[shaderName] = std::make_shared<ShaderResource>(vertexShader, fragmentShader);

View File

@ -37,7 +37,7 @@ namespace ZL {
std::stack<std::string> shaderStack;
public:
void AddShaderFromFiles(const std::string& shaderName, const std::string& vertexShaderFileName, const std::string& fragmentShaderFileName);
void AddShaderFromFiles(const std::string& shaderName, const std::string& vertexShaderFileName, const std::string& fragmentShaderFileName, const std::string& ZIPFileName = "");
void PushShader(const std::string& shaderName);
void PopShader();

View File

@ -74,8 +74,13 @@ namespace ZL
TextureDataStruct texData;
std::vector<char> fileArr;
if (!ZIPFileName.empty()) fileArr = readFileFromZIP(fullFileName, ZIPFileName);
else fileArr = readFile(fullFileName);
if (!ZIPFileName.empty()) {
fileArr = readFileFromZIP(fullFileName, ZIPFileName);
}
else {
fileArr = readFile(fullFileName);
}
size_t fileSize = fileArr.size();
@ -123,8 +128,13 @@ namespace ZL
TextureDataStruct texData;
std::vector<char> fileArr;
if (!ZIPFileName.empty()) fileArr = readFileFromZIP(fullFileName, ZIPFileName);
else fileArr = readFile(fullFileName);
if (!ZIPFileName.empty()) {
fileArr = readFileFromZIP(fullFileName, ZIPFileName);
}
else {
fileArr = readFile(fullFileName);
}
size_t fileSize = fileArr.size();