void Shader::ValidateUniforms() { if (!HasUniform(SHADER_UNIFORM_PROJECTION_MATRIX_NAME)) SP_WARN(m_Name, " shader does not contain pr_matrix uniform."); if (!HasUniform(SHADER_UNIFORM_VIEW_MATRIX_NAME)) SP_WARN(m_Name, " shader does not contain vw_matrix uniform."); if (!HasUniform(SHADER_UNIFORM_MODEL_MATRIX_NAME)) SP_WARN(m_Name, " shader does not contain ml_matrix uniform."); SP_INFO(m_Name, " shader successfully validated."); }
void ShaderManager::Reload(const String& name) { for (uint i = 0; i < s_Shaders.size(); i++) { if (s_Shaders[i]->GetName() == name) { String path = s_Shaders[i]->GetFilePath(); String error; if (!API::Shader::TryCompileFromFile(path, error)) { SP_ERROR(error); } else { s_Shaders[i]->~Shader(); s_Shaders[i] = API::Shader::CreateFromFile(name, path, s_Shaders[i]); SP_INFO("Reloaded shader: " + name); } return; } } SP_WARN("Could not find '", name, "' shader to reload."); }