public StripShaderCompilerData(UnityEditor.Rendering.ShaderCompilerData shaderCompilerData, bool isStripped = false) { if (shaderKeywordSet == null) { shaderKeywordSet = new List <StripShaderKeyword>(); } UnityEngine.Rendering.ShaderKeyword[] keywordSet = shaderCompilerData.shaderKeywordSet.GetShaderKeywords(); for (int i = 0; i < keywordSet.Length; i++) { StripShaderKeyword shaderKeyword = new StripShaderKeyword(keywordSet[i]); shaderKeywordSet.Add(shaderKeyword); } Array array = Enum.GetValues(typeof(UnityEngine.Rendering.BuiltinShaderDefine)); foreach (UnityEngine.Rendering.BuiltinShaderDefine v in array) { if (shaderCompilerData.platformKeywordSet.IsEnabled(v)) { StripBuiltinShaderDefine newdefine = StripTypeConvert.ConvertUnityTypeToStripType(v); platformKeywordSet = platformKeywordSet | newdefine; } } shaderRequirements = shaderCompilerData.shaderRequirements; graphicsTier = shaderCompilerData.graphicsTier; shaderCompilerPlatform = shaderCompilerData.shaderCompilerPlatform; this.isStripped = isStripped; }
/// <remarks> /// See ShaderCompilerGetPlatformName in ShaderCompilerClient.cpp /// </remarks> internal static string ShaderCompilerGetPlatformName(UnityEditor.Rendering.ShaderCompilerPlatform platform) { switch (platform) { case UnityEditor.Rendering.ShaderCompilerPlatform.D3D: return("d3d11"); case UnityEditor.Rendering.ShaderCompilerPlatform.GLES20: return("gles"); case UnityEditor.Rendering.ShaderCompilerPlatform.GLES3x: return("gles3"); case UnityEditor.Rendering.ShaderCompilerPlatform.Metal: return("metal"); case UnityEditor.Rendering.ShaderCompilerPlatform.OpenGLCore: return("glcore"); case UnityEditor.Rendering.ShaderCompilerPlatform.Vulkan: return("vulkan"); default: return($"Unsupported platform {platform}"); } }