浏览代码

Added base functionality to give an error on incompatible render pipeline

/main
Martin Thorzen 7 年前
当前提交
3c602bad
共有 3 个文件被更改,包括 23 次插入0 次删除
  1. 2
      com.unity.shadergraph/Editor/Data/Nodes/IMasterNode.cs
  2. 6
      com.unity.shadergraph/Editor/Data/Nodes/MasterNode.cs
  3. 15
      com.unity.shadergraph/Editor/Drawing/Views/MaterialNodeView.cs

2
com.unity.shadergraph/Editor/Data/Nodes/IMasterNode.cs


using System.Collections.Generic;
using UnityEngine.Experimental.Rendering;
namespace UnityEditor.ShaderGraph
{

bool IsPipelineCompatible(IRenderPipeline renderPipeline);
}
}

6
com.unity.shadergraph/Editor/Data/Nodes/MasterNode.cs


using UnityEditor.Graphing;
using UnityEditor.Graphing.Util;
using UnityEngine;
using UnityEngine.Experimental.Rendering;
namespace UnityEditor.ShaderGraph
{

configuredTextures = shaderProperties.GetConfiguredTexutres();
return finalShader.GetShaderString(0);
}
public bool IsPipelineCompatible(IRenderPipeline renderPipeline)
{
return true;
}
public override void OnBeforeSerialize()

15
com.unity.shadergraph/Editor/Drawing/Views/MaterialNodeView.cs


using UnityEngine.Experimental.UIElements;
using UnityEditor.Graphing;
using UnityEditor.ShaderGraph.Drawing.Controls;
using UnityEngine.Experimental.Rendering;
using UnityEngine.Experimental.UIElements.StyleEnums;
using Node = UnityEditor.Experimental.UIElements.GraphView.Node;
#if UNITY_2018_1

VisualElement m_ControlsDivider;
IEdgeConnectorListener m_ConnectorListener;
VisualElement m_PortInputContainer;
VisualElement m_Title;
IconBadge m_WrongPipeline;
public void Initialize(AbstractMaterialNode inNode, PreviewManager previewManager, IEdgeConnectorListener connectorListener)
{

if (node is SubGraphNode)
{
RegisterCallback<MouseDownEvent>(OnSubGraphDoubleClick);
}
var masterNode = node as IMasterNode;
if (masterNode != null)
{
if (!masterNode.IsPipelineCompatible(RenderPipelineManager.currentPipeline))
{
m_WrongPipeline = IconBadge.CreateError("The current render pipeline is not compatible with this node preview.");
Add(m_WrongPipeline);
m_Title = this.Q("title");
m_WrongPipeline.AttachTo(m_Title, SpriteAlignment.LeftCenter);
}
}
m_PortInputContainer.SendToBack();

正在加载...
取消
保存