4 using System.Collections.Generic;
8 using SiliconStudio.Core;
9 using SiliconStudio.Core.Serialization;
11 namespace SiliconStudio.
Paradox.Shaders
23 public string ClassName {
get; set; }
29 public string[] GenericArguments {
get; set; }
31 public Dictionary<string, string> GenericParametersArguments {
get; set; }
45 : this(className, null)
56 ClassName = className;
57 GenericArguments = genericArguments;
67 ClassName = className;
68 if (genericArguments != null)
70 GenericArguments =
new string[genericArguments.Length];
71 for (
int i = 0; i < genericArguments.Length; ++i)
73 var genArg = genericArguments[i];
75 GenericArguments[i] = ((bool)genArg).ToString().ToLower();
77 GenericArguments[i] = genArg == null ?
"null": genArg.ToString();
88 if (GenericArguments == null)
91 var result =
new StringBuilder();
92 result.Append(ClassName);
93 if (GenericArguments != null && GenericArguments.Length > 0)
96 result.Append(string.Join(
",", GenericArguments));
100 return result.ToString();
105 if (ReferenceEquals(null, shaderClassSource))
return false;
106 if (ReferenceEquals(
this, shaderClassSource))
return true;
112 if (ReferenceEquals(null, obj))
return false;
113 if (ReferenceEquals(
this, obj))
return true;
114 if (obj.GetType() != GetType())
return false;
122 return ((ClassName != null ? ClassName.GetHashCode() : 0) * 397) ^ Utilities.GetHashCode(GenericArguments);
128 return new ShaderClassSource(ClassName, GenericArguments = GenericArguments != null ? GenericArguments.ToArray() : null);
133 return ToClassName();
override bool Equals(object obj)
Determines whether the specified System.Object is equal to this instance.
static bool Compare(IEnumerable left, IEnumerable right)
Compares two collection, element by elements.
override object Clone()
Deep clones this instance.
ShaderClassSource(string className, params object[] genericArguments)
Initializes a new instance of the ShaderClassSource class.
override int GetHashCode()
bool Equals(ShaderClassSource shaderClassSource)
string[] GenericArguments
Gets the generic parameters.
override string ToString()
ShaderClassSource(string className)
Initializes a new instance of the ShaderClassSource class.
ShaderClassSource()
Initializes a new instance of the ShaderClassSource class.
ShaderClassSource(string className, params string[] genericArguments)
Initializes a new instance of the ShaderClassSource class.
string ToClassName()
Returns a class name as a System.String that represents this instance.
A shader class used for mixin.