summaryrefslogtreecommitdiff
path: root/VRCSDK3Worlds/Assets/VRCSDK/Dependencies/VRChat/Editor/ShaderStripping/StripAndroidAvatars.cs
blob: 3e4a1f1a301beb5c1b1fe5a259aae4210cee95cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using UnityEditor.Rendering;
using UnityEngine;
using VRC.SDKBase.Editor.BuildPipeline;

public class StripAndroidAvatars : IPreprocessShaders, IVRCSDKBuildRequestedCallback, IPostprocessBuildWithReport
{
    private static VRCSDKRequestedBuildType? _buildType = null;

    public int callbackOrder => 0;

    public bool OnBuildRequested(VRCSDKRequestedBuildType requestedBuildType)
    {
        _buildType = requestedBuildType;
        return true;
    }

    public void OnProcessShader(Shader shader, ShaderSnippetData snippet, IList<ShaderCompilerData> data)
    {
        if(_buildType != VRCSDKRequestedBuildType.Avatar)
        {
            return;
        }

        if(EditorUserBuildSettings.activeBuildTarget != BuildTarget.Android)
        {
            return;
        }

        data.Clear();
    }

    public void OnPostprocessBuild(BuildReport report)
    {
        _buildType = null;
    }
}