diff --git a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs index f8a3c9f5257..6a11fc647ed 100644 --- a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs @@ -2,10 +2,11 @@ using System.Linq; using UnityEditor.ShaderGraph; +using Unity.Rendering.Universal; namespace UnityEditor.Rendering.Universal.ShaderGraph { - sealed class UniversalSpriteCustomLitSubTarget : SubTarget + sealed class UniversalSpriteCustomLitSubTarget : UniversalSubTarget { static readonly GUID kSourceCodeGuid = new GUID("69e608b3e7e0405bbc2f259ad9cfa196"); // UniversalUnlitSubTarget.cs @@ -14,10 +15,13 @@ public UniversalSpriteCustomLitSubTarget() displayName = "Sprite Custom Lit"; } + protected override ShaderUtils.ShaderID shaderID => ShaderUtils.ShaderID.SG_SpriteCustomLit; + public override bool IsActive() => true; public override void Setup(ref TargetSetupContext context) { + base.Setup(ref context); context.AddAssetDependency(kSourceCodeGuid, AssetCollection.Flags.SourceDependency); context.AddSubShader(SubShaders.SpriteLit(target)); } @@ -115,8 +119,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -143,8 +147,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -170,8 +174,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, diff --git a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs index fe7a7309134..61aa1c020b5 100644 --- a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs @@ -4,10 +4,11 @@ using UnityEditor.ShaderGraph; using UnityEditor.ShaderGraph.Legacy; +using Unity.Rendering.Universal; namespace UnityEditor.Rendering.Universal.ShaderGraph { - sealed class UniversalSpriteLitSubTarget : SubTarget, ILegacyTarget + sealed class UniversalSpriteLitSubTarget : UniversalSubTarget, ILegacyTarget { static readonly GUID kSourceCodeGuid = new GUID("ea1514729d7120344b27dcd67fbf34de"); // UniversalSpriteLitSubTarget.cs @@ -18,8 +19,11 @@ public UniversalSpriteLitSubTarget() public override bool IsActive() => true; + protected override ShaderUtils.ShaderID shaderID => ShaderUtils.ShaderID.SG_SpriteLit; + public override void Setup(ref TargetSetupContext context) { + base.Setup(ref context); context.AddAssetDependency(kSourceCodeGuid, AssetCollection.Flags.SourceDependency); context.AddSubShader(SubShaders.SpriteLit(target)); } @@ -137,8 +141,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -168,8 +172,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -198,8 +202,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, diff --git a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs index adfe44a12da..05d8fcb0a3a 100644 --- a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs @@ -4,10 +4,11 @@ using UnityEditor.ShaderGraph; using UnityEditor.ShaderGraph.Legacy; +using Unity.Rendering.Universal; namespace UnityEditor.Rendering.Universal.ShaderGraph { - sealed class UniversalSpriteUnlitSubTarget : SubTarget, ILegacyTarget + sealed class UniversalSpriteUnlitSubTarget : UniversalSubTarget, ILegacyTarget { static readonly GUID kSourceCodeGuid = new GUID("ed7c0aacec26e9646b45c96fb318e5a3"); // UniversalSpriteUnlitSubTarget.cs @@ -16,10 +17,13 @@ public UniversalSpriteUnlitSubTarget() displayName = "Sprite Unlit"; } + protected override ShaderUtils.ShaderID shaderID => ShaderUtils.ShaderID.SG_SpriteUnlit; + public override bool IsActive() => true; public override void Setup(ref TargetSetupContext context) { + base.Setup(ref context); context.AddAssetDependency(kSourceCodeGuid, AssetCollection.Flags.SourceDependency); context.AddSubShader(SubShaders.SpriteUnlit(target)); } @@ -132,8 +136,8 @@ static class SpriteUnlitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -163,8 +167,8 @@ static class SpriteUnlitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, diff --git a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs index 50ed2eacf84..7564fcf3415 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs @@ -3,16 +3,17 @@ using System.Collections.Generic; using UnityEngine; using UnityEditor.ShaderGraph; -using UnityEngine.Rendering; +using Unity.Rendering.Universal; using UnityEditor.UIElements; using UnityEngine.UIElements; using UnityEditor.ShaderGraph.Legacy; using UnityEngine.Rendering.Universal; using UnityEditor.ShaderGraph.Internal; +using ShaderUtils = Unity.Rendering.Universal.ShaderUtils; namespace UnityEditor.Rendering.Universal.ShaderGraph { - sealed class UniversalDecalSubTarget : SubTarget + sealed class UniversalDecalSubTarget : UniversalSubTarget { static readonly GUID kSourceCodeGuid = new GUID("f6cdcb0f9c306bf4895b74013d29ed47"); // UniversalDecalSubTarget.cs @@ -74,8 +75,11 @@ public UniversalDecalSubTarget() public override bool IsActive() => true; + protected override ShaderUtils.ShaderID shaderID => ShaderUtils.ShaderID.SG_Decal; + public override void Setup(ref TargetSetupContext context) { + base.Setup(ref context); context.AddAssetDependency(kSourceCodeGuid, AssetCollection.Flags.SourceDependency); context.AddCustomEditorForRenderPipeline("UnityEditor.Rendering.Universal.DecalShaderGraphGUI", typeof(UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset)); // TODO: This should be owned by URP diff --git a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs index 9fc4dfa43f4..948a7a264f7 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs @@ -964,8 +964,8 @@ public static PassDescriptor _2DSceneSelection(UniversalTarget target) useInPreview = false, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -1002,8 +1002,8 @@ public static PassDescriptor _2DScenePicking(UniversalTarget target) useInPreview = false, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, diff --git a/com.unity.render-pipelines.universal/Editor/ShaderUtils.cs b/com.unity.render-pipelines.universal/Editor/ShaderUtils.cs index 43bbbd6358c..274ad6d734d 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderUtils.cs +++ b/com.unity.render-pipelines.universal/Editor/ShaderUtils.cs @@ -29,6 +29,10 @@ internal enum ShaderID // ShaderGraph IDs start at 1000, correspond to subtargets SG_Unlit = 1000, // UniversalUnlitSubTarget SG_Lit, // UniversalLitSubTarget + SG_Decal, // UniversalDecalSubTarget + SG_SpriteUnlit, // UniversalSpriteUnlitSubTarget + SG_SpriteLit, // UniversalSpriteLitSubTarget + SG_SpriteCustomLit // UniversalSpriteCustomLitSubTarget } internal static bool IsShaderGraph(this ShaderID id) @@ -96,6 +100,14 @@ internal static void UpdateMaterial(Material material, MaterialUpdateType update case ShaderID.SG_Unlit: ShaderGraphUnlitGUI.UpdateMaterial(material, updateType); break; + case ShaderID.SG_Decal: + break; + case ShaderID.SG_SpriteUnlit: + break; + case ShaderID.SG_SpriteLit: + break; + case ShaderID.SG_SpriteCustomLit: + break; default: break; }