public override AbstractShaderProperty Copy() { var copied = new SamplerStateShaderProperty(); copied.displayName = displayName; copied.value = value; return(copied); }
public void GenerateNodeCode(ShaderGenerator visitor, GraphContext graphContext, GenerationMode generationMode) { var graph = owner as GraphData; var property = graph.properties.FirstOrDefault(x => x.guid == propertyGuid); if (property == null) { return; } if (property is Vector1ShaderProperty) { var result = string.Format("{0} {1} = {2};" , precision , GetVariableNameForSlot(OutputSlotId) , property.referenceName); visitor.AddShaderChunk(result, true); } else if (property is Vector2ShaderProperty) { var result = string.Format("{0}2 {1} = {2};" , precision , GetVariableNameForSlot(OutputSlotId) , property.referenceName); visitor.AddShaderChunk(result, true); } else if (property is Vector3ShaderProperty) { var result = string.Format("{0}3 {1} = {2};" , precision , GetVariableNameForSlot(OutputSlotId) , property.referenceName); visitor.AddShaderChunk(result, true); } else if (property is Vector4ShaderProperty) { var result = string.Format("{0}4 {1} = {2};" , precision , GetVariableNameForSlot(OutputSlotId) , property.referenceName); visitor.AddShaderChunk(result, true); } else if (property is ColorShaderProperty) { var result = string.Format("{0}4 {1} = {2};" , precision , GetVariableNameForSlot(OutputSlotId) , property.referenceName); visitor.AddShaderChunk(result, true); } else if (property is BooleanShaderProperty) { var result = string.Format("{0} {1} = {2};" , precision , GetVariableNameForSlot(OutputSlotId) , property.referenceName); visitor.AddShaderChunk(result, true); } else if (property is Matrix2ShaderProperty) { var result = string.Format("{0}2x2 {1} = {2};" , precision , GetVariableNameForSlot(OutputSlotId) , property.referenceName); visitor.AddShaderChunk(result, true); } else if (property is Matrix3ShaderProperty) { var result = string.Format("{0}3x3 {1} = {2};" , precision , GetVariableNameForSlot(OutputSlotId) , property.referenceName); visitor.AddShaderChunk(result, true); } else if (property is Matrix4ShaderProperty) { var result = string.Format("{0}4x4 {1} = {2};" , precision , GetVariableNameForSlot(OutputSlotId) , property.referenceName); visitor.AddShaderChunk(result, true); } else if (property is SamplerStateShaderProperty) { SamplerStateShaderProperty samplerStateProperty = property as SamplerStateShaderProperty; var result = string.Format("SamplerState {0} = {1}_{2}_{3};" , GetVariableNameForSlot(OutputSlotId) , samplerStateProperty.referenceName , samplerStateProperty.value.filter , samplerStateProperty.value.wrap); visitor.AddShaderChunk(result, true); } else if (property is GradientShaderProperty) { if (generationMode == GenerationMode.Preview) { var result = string.Format("Gradient {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , GradientUtils.GetGradientForPreview(property.referenceName)); visitor.AddShaderChunk(result, true); } else { var result = string.Format("Gradient {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , property.referenceName); visitor.AddShaderChunk(result, true); } } }
public void GenerateNodeCode(ShaderStringBuilder sb, GraphContext graphContext, GenerationMode generationMode) { var graph = owner as GraphData; var property = graph.properties.FirstOrDefault(x => x.guid == propertyGuid); if (property == null) { return; } if (property is Vector1ShaderProperty) { var result = string.Format("$precision {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , property.referenceName); sb.AppendLine(result); } else if (property is Vector2ShaderProperty) { var result = string.Format("$precision2 {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , property.referenceName); sb.AppendLine(result); } else if (property is Vector3ShaderProperty) { var result = string.Format("$precision3 {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , property.referenceName); sb.AppendLine(result); } else if (property is Vector4ShaderProperty) { var result = string.Format("$precision4 {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , property.referenceName); sb.AppendLine(result); } else if (property is ColorShaderProperty) { var result = string.Format("$precision4 {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , property.referenceName); sb.AppendLine(result); } else if (property is BooleanShaderProperty) { var result = string.Format("$precision {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , property.referenceName); sb.AppendLine(result); } else if (property is Matrix2ShaderProperty) { var result = string.Format("$precision2x2 {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , property.referenceName); sb.AppendLine(result); } else if (property is Matrix3ShaderProperty) { var result = string.Format("$precision3x3 {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , property.referenceName); sb.AppendLine(result); } else if (property is Matrix4ShaderProperty) { var result = string.Format("$precision4x4 {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , property.referenceName); sb.AppendLine(result); } else if (property is SamplerStateShaderProperty) { SamplerStateShaderProperty samplerStateProperty = property as SamplerStateShaderProperty; var result = string.Format("SamplerState {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , samplerStateProperty.referenceName); sb.AppendLine(result); } else if (property is GradientShaderProperty) { if (generationMode == GenerationMode.Preview) { var result = string.Format("Gradient {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , GradientUtils.GetGradientForPreview(property.referenceName)); sb.AppendLine(result); } else { var result = string.Format("Gradient {0} = {1};" , GetVariableNameForSlot(OutputSlotId) , property.referenceName); sb.AppendLine(result); } } }