bool CheckKeywords(Shader shader, PassType pass, string[] keywords) { bool valid = false; try { ShaderVariantCollection.ShaderVariant variant = new ShaderVariantCollection.ShaderVariant( shader, pass, keywords ); valid = true; } catch (System.ArgumentException) { // if (shader.name == "GUI/Text Shader") // { // Debug.LogFormat( // "Shader {0} pass {1} keywords '{2}' not found", // shader.name, // pass.ToString(), // string.Join(" ", keywords)); // } if (internalShaders.Contains(shader.name) && keywords.Length == 0) { valid = true; } } return(valid); }
void AddKeywords( ShaderVariantCollection collection, Shader shader, PassType pass, string[] keywordList) { if (CheckKeywords(shader, pass, keywordList)) { List <string> keywords = new List <string>(keywordList); // special case override if (shader.name != "Hidden/VideoDecodeAndroid" && !keywords.Contains("SHADOWS_DEPTH")) { keywords.Add("STEREO_MULTIVIEW_ON"); } ShaderVariantCollection.ShaderVariant variant = new ShaderVariantCollection.ShaderVariant(); variant.shader = shader; variant.passType = pass; variant.keywords = keywords.ToArray(); collection.Add(variant); } }
public static StripPassType ConvertUnityTypeToStripType(UnityEngine.Rendering.PassType inType) { return((StripPassType)Mathf.Pow(2, (int)inType)); }
extern private static string CheckShaderVariant(Shader shader, UnityEngine.Rendering.PassType passType, string[] keywords);