bool Shader::AttachStageFromFile(ShaderStageType stage, const String& filePath) { ShaderStage shaderStage(stage); if (!shaderStage.IsValid()) { NazaraError("Failed to create shader stage"); return false; } shaderStage.SetSourceFromFile(filePath); if (!shaderStage.Compile()) { NazaraError("Failed to compile stage: " + shaderStage.GetLog()); return false; } AttachStage(stage, shaderStage); return true; }
bool Shader::AttachStageFromSource(ShaderStageType stage, const char* source, unsigned int length) { ShaderStage shaderStage(stage); if (!shaderStage.IsValid()) { NazaraError("Failed to create shader stage"); return false; } shaderStage.SetSource(source, length); if (!shaderStage.Compile()) { NazaraError("Failed to compile stage: " + shaderStage.GetLog()); return false; } AttachStage(stage, shaderStage); return true; }
bool NzShader::AttachStageFromSource(nzShaderStage stage, const NzString& source) { NzShaderStage shaderStage(stage); if (!shaderStage.IsValid()) { NazaraError("Failed to create shader stage"); return false; } shaderStage.SetSource(source); if (!shaderStage.Compile()) { NazaraError("Failed to compile stage: " + shaderStage.GetLog()); return false; } AttachStage(stage, shaderStage); return true; }