public void SetGlobalValues(ShaderField info, object value) { bool isEnable = (bool)value; if (isEnable) { Shader.EnableKeyword(info.ShaderFieldName); } else { Shader.DisableKeyword(info.ShaderFieldName); } }
public void SetMaterial(ShaderField info, Material material, object value) { bool isEnable = (bool)value; if (isEnable) { material.EnableKeyword(info.ShaderFieldName); } else { material.DisableKeyword(info.ShaderFieldName); } }
public static bool TryCreate(ShaderField field, MaterialProperty[] properties, out IFieldDrawer drawer) { var materialProperty = ShaderDrawerHelper.PublicFindProperty(field.ShaderFieldName, properties); if (materialProperty != null) { drawer = new StandardFieldDrawer(field, materialProperty); return(true); } else { drawer = default(IFieldDrawer); return(false); } }
public void SetMaterial(ShaderField info, Material material, object value) { var vecto2 = (Vector2)value; material.SetVector(info.ShderFieldID, vecto2); }
public void SetMaterial(ShaderField info, Material material, object value) { var intValue = (int)value; material.SetInt(info.ShaderFieldName, intValue); }
public void SetGlobalValues(ShaderField info, object value) { int intValue = (int)value; Shader.SetGlobalInt(info.ShaderFieldName, intValue); }
public void SetMaterial(ShaderField info, Material material, object value) { material.SetMatrixArray(info.ShderFieldID, (Matrix4x4[])value); }
public void SetGlobalValues(ShaderField info, object value) { Shader.SetGlobalMatrixArray(info.ShderFieldID, (Matrix4x4[])value); }
public object GetValue(ShaderField info, Material material) { return(material.GetFloat(info.ShderFieldID)); }
public void SetMaterial(ShaderField info, Material material, object value) { material.SetVectorArray(info.ShderFieldID, (Vector4[])value); }
public void SetGlobalValues(ShaderField info, object value) { Shader.SetGlobalVectorArray(info.ShderFieldID, (Vector4[])value); }
public void SetMaterial(ShaderField info, Material material, object value) { Vector3 vector3 = (Vector3)value; material.SetVector(info.ShderFieldID, vector3); }
public object GetValue(ShaderField info, Material material) { Vector4 value = material.GetVector(info.ShderFieldID); return(new Vector3(value.x, value.y, value.z)); }
public void SetGlobalValues(ShaderField info, object value) { Vector3 vector3 = (Vector3)value; Shader.SetGlobalVector(info.ShderFieldID, vector3); }
public object GetGlobalValues(ShaderField info) { Vector4 value = Shader.GetGlobalVector(info.ShderFieldID); return(new Vector3(value.x, value.y, value.z)); }
public void SetMaterial(ShaderField info, Material material, object value) { material.SetTextureScale(info.ShderFieldID, (Vector2)value); }
public object GetGlobalValues(ShaderField info) { return(Shader.GetGlobalMatrixArray(info.ShderFieldID)); }
public void SetGlobalValues(ShaderField info, object value) { Shader.SetGlobalFloatArray(info.ShderFieldID, (float[])value); }
public object GetValue(ShaderField info, Material material) { return(material.GetMatrixArray(info.ShderFieldID)); }
public void SetMaterial(ShaderField info, Material material, object value) { material.SetFloatArray(info.ShderFieldID, (float[])value); }
public object GetGlobalValues(ShaderField info) { return(Shader.GetGlobalInt(info.ShaderFieldName)); }
public object GetGlobalValues(ShaderField info) { return(Shader.GetGlobalTexture(info.ShderFieldID)); }
public object GetValue(ShaderField info, Material material) { return(material.GetInt(info.ShaderFieldName)); }
public void SetGlobalValues(ShaderField info, object value) { Shader.SetGlobalTexture(info.ShderFieldID, (Texture)value); }
public object GetGlobalValues(ShaderField info) { return(Shader.IsKeywordEnabled(info.ShaderFieldName)); }
public object GetGlobalValues(ShaderField info) { return(default(Vector2)); }
public object GetValue(ShaderField info, Material material) { return(material.IsKeywordEnabled(info.ShaderFieldName)); }
public void SetGlobalValues(ShaderField info, object value) { }
private static void InternalFind(Type type, ICollection <IShaderFieldGroup> parameters) { var fields = EnumerateFields(type); foreach (var field in fields) { string name; ShaderFieldFormat format; Type fieldType = field.FieldType; string fieldName = field.Name; var attributes = field.MemberInfo.GetCustomAttributes(); foreach (var attribute in attributes) { if (attribute is ObsoleteAttribute) { goto NextField; } } foreach (var attribute in attributes) { if (attribute is ShaderFieldBaseAttribute) { if (attribute is ShaderFieldAttribute) { var att = (ShaderFieldAttribute)attribute; name = att.Name; var customClass = fieldType.GetCustomAttribute <ShaderCustomFieldClassAttribute>(); if (customClass != null) { var methods = fieldType.GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); foreach (var method in methods) { var customMethod = method.GetCustomAttribute <ShaderCustomFieldMethodAttribute>(); if (customMethod != null) { IShaderField customField = (IShaderField)method.Invoke(null, null); if (customField == null) { throw new ArgumentException("Custom method return null!" + method.ToString()); } var parameter = new ShaderCustomField(name, att.Mask, field, customField); parameters.Add(parameter); } } } else if (TryGetFormat(ref name, fieldType, out format)) { var parameter = new ShaderField(name, att.Mask, format, field); parameters.Add(parameter); } } else if (attribute is ShaderFieldKeywordAttribute) { var att = (ShaderFieldKeywordAttribute)attribute; if (typeof(bool) == fieldType) { ShaderKeyword parameter = new ShaderKeyword(att.Keyword, field, att.ShortName, att.Mask); parameters.Add(parameter); } } else if (attribute is ShaderFieldEnumKeywordAttribute) { var att = (ShaderFieldEnumKeywordAttribute)attribute; if (typeof(Enum).IsAssignableFrom(fieldType)) { var item = new ShaderEnumKeyword(att.Mask, field, att.Keywords); parameters.Add(item); } } else if (attribute is ShaderFieldMarkAttribute) { var att = (ShaderFieldMarkAttribute)attribute; var item = new ShaderFieldMark(att.Mask, field); parameters.Add(item); } goto NextField; } } var structAttribute = field.FieldType.GetCustomAttribute <ShaderFieldGroupAttribute>(); if (structAttribute != null) { var group = new ShaderFieldGroup(field, structAttribute.Mask); InternalFind(fieldType, group.Children); if (group.Children.Count > 0) { parameters.Add(group); } goto NextField; } NextField: continue; } }
public object GetValue(ShaderField info, Material material) { return(material.GetTextureScale(info.ShderFieldID)); }