update
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEditor.Build;
|
||||
using UnityEditor.Rendering;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
namespace Unity.FPS.EditorExt
|
||||
{
|
||||
// Simple example of stripping of a debug build configuration
|
||||
class ShaderBuildStripping : IPreprocessShaders
|
||||
{
|
||||
List<ShaderKeyword> m_ExcludedKeywords;
|
||||
|
||||
public ShaderBuildStripping()
|
||||
{
|
||||
#if MANUAL_SHADER_STRIPPING
|
||||
m_ExcludedKeywords = new List<ShaderKeyword>
|
||||
{
|
||||
new ShaderKeyword("DEBUG"),
|
||||
// ifdef
|
||||
new ShaderKeyword("UNITY_GATHER_SUPPORTED"),
|
||||
new ShaderKeyword("UNITY_POSTFX_SSR"),
|
||||
new ShaderKeyword("DISTORT"),
|
||||
new ShaderKeyword("BLUR_HIGH_QUALITY"),
|
||||
new ShaderKeyword("UNITY_CAN_COMPILE_TESSELLATION"),
|
||||
new ShaderKeyword("ENABLE_WIND"),
|
||||
new ShaderKeyword("WIND_EFFECT_FROND_RIPPLE_ADJUST_LIGHTING"),
|
||||
new ShaderKeyword("LOD_FADE_CROSSFADE"),
|
||||
new ShaderKeyword("DYNAMICLIGHTMAP_ON"),
|
||||
new ShaderKeyword("EDITOR_VISUALIZATION"),
|
||||
new ShaderKeyword("UNITY_INSTANCING_ENABLED"),
|
||||
new ShaderKeyword("STEREO_MULTIVIEW_ON"),
|
||||
new ShaderKeyword("STEREO_INSTANCING_ON"),
|
||||
new ShaderKeyword("SOFTPARTICLES_ON"),
|
||||
new ShaderKeyword("PIXELSNAP_ON"),
|
||||
new ShaderKeyword("SHADER_API_D3D11"),
|
||||
// if defined()
|
||||
new ShaderKeyword("SHADER_API_VULKAN"),
|
||||
new ShaderKeyword("UNITY_SINGLE_PASS_STEREO"),
|
||||
new ShaderKeyword("FOG_LINEAR"),
|
||||
new ShaderKeyword("FOG_EXP"),
|
||||
new ShaderKeyword("FOG_EXP2"),
|
||||
new ShaderKeyword("UNITY_PASS_DEFERRED"),
|
||||
new ShaderKeyword("LIGHTMAP_ON"),
|
||||
new ShaderKeyword("_PARALLAXMAP"),
|
||||
new ShaderKeyword("SHADOWS_SCREEN"),
|
||||
};
|
||||
#endif
|
||||
}
|
||||
|
||||
// Multiple callback may be implemented.
|
||||
// The first one executed is the one where callbackOrder is returning the smallest number.
|
||||
public int callbackOrder
|
||||
{
|
||||
get { return 0; }
|
||||
}
|
||||
|
||||
public void OnProcessShader(
|
||||
Shader shader, ShaderSnippetData snippet, IList<ShaderCompilerData> shaderCompilerData)
|
||||
{
|
||||
#if MANUAL_SHADER_STRIPPING
|
||||
// In development, don't strip debug variants
|
||||
if (EditorUserBuildSettings.development)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < shaderCompilerData.Count; ++i)
|
||||
{
|
||||
bool mustStrip = false;
|
||||
foreach (var kw in m_ExcludedKeywords)
|
||||
{
|
||||
if (shaderCompilerData[i].shaderKeywordSet.IsEnabled(kw))
|
||||
{
|
||||
mustStrip = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (mustStrip)
|
||||
{
|
||||
shaderCompilerData.RemoveAt(i);
|
||||
--i;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user