diff --git a/ShaderManager.cpp b/ShaderManager.cpp index f0e5a2f..29ce406 100755 --- a/ShaderManager.cpp +++ b/ShaderManager.cpp @@ -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 vertexShaderData; + std::vector 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(vertexShader, fragmentShader); diff --git a/ShaderManager.h b/ShaderManager.h index dd84eed..da911f1 100755 --- a/ShaderManager.h +++ b/ShaderManager.h @@ -37,7 +37,7 @@ namespace ZL { std::stack 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(); diff --git a/TextureManager.cpp b/TextureManager.cpp index b2cd400..faa0927 100755 --- a/TextureManager.cpp +++ b/TextureManager.cpp @@ -74,8 +74,13 @@ namespace ZL TextureDataStruct texData; std::vector 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 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();