private string ExtractPlatformShader(string allVersions, string platform)
{
var versions = allVersions.Split(new[] {"#if"}, StringSplitOptions.None);
if (versions.Length > 1)
{
var version = versions.FirstOrDefault(s => s.Contains(platform));
if (version == null)
throw new InvalidProgramException(string.Format("Couldn't find a platform shader for '{0}' in '{1}'", platform, this.Name));
var lines = version.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Skip(1);
return string.Join(Environment.NewLine, lines);
}
return allVersions;
}