浏览代码

Remove GC allocations on preview property collection

/main
Matt Dean 6 年前
当前提交
70436083
共有 17 个文件被更改,包括 40 次插入74 次删除
  1. 6
      com.unity.shadergraph/Editor/Data/Graphs/BooleanMaterialSlot.cs
  2. 6
      com.unity.shadergraph/Editor/Data/Graphs/ColorMaterialSlot.cs
  3. 6
      com.unity.shadergraph/Editor/Data/Graphs/ColorRGBMaterialSlot.cs
  4. 6
      com.unity.shadergraph/Editor/Data/Graphs/CubemapInputMaterialSlot.cs
  5. 6
      com.unity.shadergraph/Editor/Data/Graphs/DynamicValueMaterialSlot.cs
  6. 6
      com.unity.shadergraph/Editor/Data/Graphs/DynamicVectorMaterialSlot.cs
  7. 14
      com.unity.shadergraph/Editor/Data/Graphs/GradientInputMaterialSlot.cs
  8. 6
      com.unity.shadergraph/Editor/Data/Graphs/MaterialSlot.cs
  9. 6
      com.unity.shadergraph/Editor/Data/Graphs/Matrix2MaterialSlot.cs
  10. 6
      com.unity.shadergraph/Editor/Data/Graphs/Matrix3MaterialSlot.cs
  11. 6
      com.unity.shadergraph/Editor/Data/Graphs/Matrix4MaterialSlot.cs
  12. 6
      com.unity.shadergraph/Editor/Data/Graphs/Texture2DInputMaterialSlot.cs
  13. 6
      com.unity.shadergraph/Editor/Data/Graphs/Vector1MaterialSlot.cs
  14. 6
      com.unity.shadergraph/Editor/Data/Graphs/Vector2MaterialSlot.cs
  15. 6
      com.unity.shadergraph/Editor/Data/Graphs/Vector3MaterialSlot.cs
  16. 6
      com.unity.shadergraph/Editor/Data/Graphs/Vector4MaterialSlot.cs
  17. 10
      com.unity.shadergraph/Editor/Data/Nodes/AbstractMaterialNode.cs

6
com.unity.shadergraph/Editor/Data/Graphs/BooleanMaterialSlot.cs


public override SlotValueType valueType { get { return SlotValueType.Boolean; } }
public override ConcreteSlotValueType concreteValueType { get { return ConcreteSlotValueType.Boolean; } }
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
public override void CopyValuesFrom(MaterialSlot foundSlot)

6
com.unity.shadergraph/Editor/Data/Graphs/ColorMaterialSlot.cs


properties.AddShaderProperty(property);
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
}
}

6
com.unity.shadergraph/Editor/Data/Graphs/ColorRGBMaterialSlot.cs


properties.AddShaderProperty(property);
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
}
}

6
com.unity.shadergraph/Editor/Data/Graphs/CubemapInputMaterialSlot.cs


properties.AddShaderProperty(prop);
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
public override void CopyValuesFrom(MaterialSlot foundSlot)

6
com.unity.shadergraph/Editor/Data/Graphs/DynamicValueMaterialSlot.cs


m_ConcreteValueType = valueType;
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
var propType = ConvertConcreteSlotValueTypeToPropertyType(concreteValueType);
var pp = new PreviewProperty(propType) { name = name };
if (propType == PropertyType.Vector1)

props.Add(pp);
return props;
properties.Add(pp);
}
protected override string ConcreteSlotValueAsVariable(AbstractMaterialNode.OutputPrecision precision)

6
com.unity.shadergraph/Editor/Data/Graphs/DynamicVectorMaterialSlot.cs


m_ConcreteValueType = valueType;
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public virtual void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
var propType = ConvertConcreteSlotValueTypeToPropertyType(concreteValueType);
var pp = new PreviewProperty(propType) { name = name };
if (propType == PropertyType.Vector1)

props.Add(pp);
return props;
properties.Add(pp);
}
protected override string ConcreteSlotValueAsVariable(AbstractMaterialNode.OutputPrecision precision)

14
com.unity.shadergraph/Editor/Data/Graphs/GradientInputMaterialSlot.cs


properties.AddShaderProperty(prop);
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(new PreviewProperty(PropertyType.Vector1)
properties.Add(new PreviewProperty(PropertyType.Vector1)
props.Add(new PreviewProperty(PropertyType.Vector1)
properties.Add(new PreviewProperty(PropertyType.Vector1)
props.Add(new PreviewProperty(PropertyType.Vector1)
properties.Add(new PreviewProperty(PropertyType.Vector1)
{
name = string.Format("{0}_AlphasLength", name),
floatValue = value.alphaKeys.Length

{
props.Add(new PreviewProperty(PropertyType.Vector4)
properties.Add(new PreviewProperty(PropertyType.Vector4)
{
name = string.Format("{0}_ColorKey{1}", name, i),
vector4Value = i < value.colorKeys.Length ? GradientUtils.ColorKeyToVector(value.colorKeys[i]) : Vector4.zero

for(int i = 0; i < 8; i++)
{
props.Add(new PreviewProperty(PropertyType.Vector2)
properties.Add(new PreviewProperty(PropertyType.Vector2)
return props;
}
public override void CopyValuesFrom(MaterialSlot foundSlot)

6
com.unity.shadergraph/Editor/Data/Graphs/MaterialSlot.cs


}
}
public virtual List<PreviewProperty> GetPreviewProperties(string name)
public virtual void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(default(PreviewProperty));
return props;
properties.Add(default(PreviewProperty));
}
public abstract void CopyValuesFrom(MaterialSlot foundSlot);

6
com.unity.shadergraph/Editor/Data/Graphs/Matrix2MaterialSlot.cs


properties.AddShaderProperty(property);
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
public override SlotValueType valueType { get { return SlotValueType.Matrix2; } }

6
com.unity.shadergraph/Editor/Data/Graphs/Matrix3MaterialSlot.cs


properties.AddShaderProperty(property);
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
public override SlotValueType valueType { get { return SlotValueType.Matrix3; } }

6
com.unity.shadergraph/Editor/Data/Graphs/Matrix4MaterialSlot.cs


properties.AddShaderProperty(property);
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
public override SlotValueType valueType { get { return SlotValueType.Matrix4; } }

6
com.unity.shadergraph/Editor/Data/Graphs/Texture2DInputMaterialSlot.cs


properties.AddShaderProperty(prop);
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
public override void CopyValuesFrom(MaterialSlot foundSlot)

6
com.unity.shadergraph/Editor/Data/Graphs/Vector1MaterialSlot.cs


public override SlotValueType valueType { get { return SlotValueType.Vector1; } }
public override ConcreteSlotValueType concreteValueType { get { return ConcreteSlotValueType.Vector1; } }
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
public override void CopyValuesFrom(MaterialSlot foundSlot)

6
com.unity.shadergraph/Editor/Data/Graphs/Vector2MaterialSlot.cs


properties.AddShaderProperty(property);
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
public override SlotValueType valueType { get { return SlotValueType.Vector2; } }

6
com.unity.shadergraph/Editor/Data/Graphs/Vector3MaterialSlot.cs


properties.AddShaderProperty(property);
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
public override SlotValueType valueType { get { return SlotValueType.Vector3; } }

6
com.unity.shadergraph/Editor/Data/Graphs/Vector4MaterialSlot.cs


properties.AddShaderProperty(property);
}
public override List<PreviewProperty> GetPreviewProperties(string name)
public override void GetPreviewProperties(List<PreviewProperty> properties, string name)
List<PreviewProperty> props = new List<PreviewProperty>();
props.Add(pp);
return props;
properties.Add(pp);
}
public override SlotValueType valueType { get { return SlotValueType.Vector4; } }

10
com.unity.shadergraph/Editor/Data/Nodes/AbstractMaterialNode.cs


if (s_TempEdges.Any())
continue;
var items = s.GetPreviewProperties(GetVariableNameForSlot(s.id));
for(int i = 0; i < items.Count; i++)
s.GetPreviewProperties(properties, GetVariableNameForSlot(s.id));
for(int i = 0; i < properties.Count; i++)
if (items[i].name == null)
continue;
properties.Add(items[i]);
if (properties[i].name == null)
properties.Remove(properties[i]);
}
}
}

正在加载...
取消
保存