VisualElement CreateGUI(AbstractMaterialNode node, InspectableAttribute attribute, out VisualElement propertyVisualElement) { VisualElement nodeSettings = new VisualElement(); var nameLabel = PropertyDrawerUtils.CreateLabel($"{node.name} Node", 0, FontStyle.Bold); nodeSettings.Add(nameLabel); EnumField precisionField = null; if (node.canSetPrecision) { precisionField = new EnumField(node.precision); var propertyRow = new PropertyRow(new Label("Precision")); propertyRow.Add(precisionField, (field) => { field.RegisterValueChangedCallback(evt => { if (evt.newValue.Equals(node.precision)) { return; } m_setNodesAsDirtyCallback(); node.owner.owner.RegisterCompleteObjectUndo("Change precision"); node.precision = (Precision)evt.newValue; node.owner.ValidateGraph(); m_updateNodeViewsCallback(); node.Dirty(ModificationScope.Graph); }); }); nodeSettings.Add(propertyRow); } propertyVisualElement = precisionField; return(nodeSettings); }
VisualElement CreateGUI(AbstractMaterialNode node, InspectableAttribute attribute, out VisualElement propertyVisualElement) { VisualElement nodeSettings = new VisualElement(); var nameLabel = PropertyDrawerUtils.CreateLabel($"{node.name} Node", 0, FontStyle.Bold); nodeSettings.Add(nameLabel); if (node.sgVersion < node.latestVersion) { var help = HelpBoxRow.TryGetDeprecatedHelpBoxRow($"{node.name} Node", () => { m_setNodesAsDirtyCallback?.Invoke(); node.owner.owner.RegisterCompleteObjectUndo($"Update {node.name} Node"); node.ChangeVersion(node.latestVersion); inspectorUpdateDelegate?.Invoke(); m_updateNodeViewsCallback?.Invoke(); node.Dirty(ModificationScope.Graph); }); if (help != null) { nodeSettings.Insert(0, help); } } PropertyDrawerUtils.AddDefaultNodeProperties(nodeSettings, node, m_setNodesAsDirtyCallback, m_updateNodeViewsCallback); propertyVisualElement = null; return(nodeSettings); }
VisualElement CreateGUI(CustomFunctionNode node, InspectableAttribute attribute, out VisualElement propertyVisualElement) { var propertySheet = new PropertySheet(PropertyDrawerUtils.CreateLabel($"{node.name} Node", 0, FontStyle.Bold)); PropertyDrawerUtils.AddDefaultNodeProperties(propertySheet, node, m_setNodesAsDirtyCallback, m_updateNodeViewsCallback); var inputListView = new ReorderableSlotListView(node, SlotType.Input, true); inputListView.OnAddCallback += list => inspectorUpdateDelegate(); inputListView.OnRemoveCallback += list => inspectorUpdateDelegate(); inputListView.OnListRecreatedCallback += () => inspectorUpdateDelegate(); propertySheet.Add(inputListView); var outputListView = new ReorderableSlotListView(node, SlotType.Output, true); outputListView.OnAddCallback += list => inspectorUpdateDelegate(); outputListView.OnRemoveCallback += list => inspectorUpdateDelegate(); outputListView.OnListRecreatedCallback += () => inspectorUpdateDelegate(); propertySheet.Add(outputListView); propertySheet.Add(new HlslFunctionView(node)); propertyVisualElement = null; return(propertySheet); }
public VisualElement DrawProperty(PropertyInfo propertyInfo, object actualObject, InspectableAttribute attribute) { return(this.CreateGUI( (SubGraphOutputNode)actualObject, attribute, out var propertyVisualElement)); }
public VisualElement DrawProperty(PropertyInfo propertyInfo, object actualObject, InspectableAttribute attribute) { return(this.CreateGUI( (SampleVirtualTextureNode)actualObject, attribute, out var propertyVisualElement)); }
public VisualElement DrawProperty(PropertyInfo propertyInfo, object actualObject, InspectableAttribute attribute) { return(this.CreateGUI( (CustomFunctionNode)actualObject, attribute, out var propertyVisualElement)); }
VisualElement CreateGUI(AbstractMaterialNode node, InspectableAttribute attribute, out VisualElement propertyVisualElement) { VisualElement nodeSettings = new VisualElement(); var nameLabel = PropertyDrawerUtils.CreateLabel($"{node.name} Node", 0, FontStyle.Bold); nodeSettings.Add(nameLabel); if (node.sgVersion < node.latestVersion) { string deprecationText = null; string buttonText = null; string labelText = null; MessageType messageType = MessageType.Warning; if (node is IHasCustomDeprecationMessage nodeWithCustomDeprecationSettings) { nodeWithCustomDeprecationSettings.GetCustomDeprecationMessage(out deprecationText, out buttonText, out labelText, out messageType); } Action dismissAction = null; if (node.dismissedUpdateVersion < node.latestVersion) { dismissAction = () => { // dismiss m_setNodesAsDirtyCallback?.Invoke(); node.owner.owner.RegisterCompleteObjectUndo($"Dismiss {node.name} Node Upgrade Flag"); node.dismissedUpdateVersion = node.latestVersion; node.owner.messageManager.ClearNodesFromProvider(node.owner, new AbstractMaterialNode[] { node }); node.Dirty(ModificationScope.Graph); inspectorUpdateDelegate?.Invoke(); m_updateNodeViewsCallback?.Invoke(); }; } var help = HelpBoxRow.TryGetDeprecatedHelpBoxRow($"{node.name} Node", () => { // upgrade m_setNodesAsDirtyCallback?.Invoke(); node.owner.owner.RegisterCompleteObjectUndo($"Update {node.name} Node"); node.ChangeVersion(node.latestVersion); node.owner.messageManager.ClearNodesFromProvider(node.owner, new AbstractMaterialNode[] { node }); node.Dirty(ModificationScope.Graph); inspectorUpdateDelegate?.Invoke(); m_updateNodeViewsCallback?.Invoke(); }, dismissAction, deprecationText, buttonText, labelText, messageType); if (help != null) { nodeSettings.Insert(0, help); } } PropertyDrawerUtils.AddDefaultNodeProperties(nodeSettings, node, m_setNodesAsDirtyCallback, m_updateNodeViewsCallback); AddCustomNodeProperties(nodeSettings, node, m_setNodesAsDirtyCallback, m_updateNodeViewsCallback); propertyVisualElement = null; return(nodeSettings); }
// Token: 0x06000BFA RID: 3066 RVA: 0x0005B854 File Offset: 0x00059C54 public static TranslatedText getTranslatedNameText(this Type type) { object[] customAttributes = type.GetCustomAttributes(typeof(InspectableAttribute), false); if (customAttributes.Length > 0) { InspectableAttribute inspectableAttribute = customAttributes[0] as InspectableAttribute; return(new TranslatedText(inspectableAttribute.name)); } return(new TranslatedTextFallback(type.Name)); }
VisualElement CreateGUI(AbstractMaterialNode node, InspectableAttribute attribute, out VisualElement propertyVisualElement) { VisualElement nodeSettings = new VisualElement(); var nameLabel = PropertyDrawerUtils.CreateLabel($"{node.name} Node", 0, FontStyle.Bold); nodeSettings.Add(nameLabel); if (node.sgVersion < node.latestVersion) { var help = HelpBoxRow.TryGetDeprecatedHelpBoxRow($"{node.name} Node", () => { m_setNodesAsDirtyCallback?.Invoke(); node.owner.owner.RegisterCompleteObjectUndo($"Update {node.name} Node"); node.ChangeVersion(node.latestVersion); inspectorUpdateDelegate?.Invoke(); m_updateNodeViewsCallback?.Invoke(); node.Dirty(ModificationScope.Graph); }); if (help != null) { nodeSettings.Insert(0, help); } } EnumField precisionField = null; if (node.canSetPrecision) { precisionField = new EnumField(node.precision); var propertyRow = new PropertyRow(new Label("Precision")); propertyRow.Add(precisionField, (field) => { field.RegisterValueChangedCallback(evt => { if (evt.newValue.Equals(node.precision)) { return; } m_setNodesAsDirtyCallback(); node.owner.owner.RegisterCompleteObjectUndo("Change precision"); node.precision = (Precision)evt.newValue; node.owner.ValidateGraph(); m_updateNodeViewsCallback(); node.Dirty(ModificationScope.Graph); }); }); if (node is Serialization.MultiJsonInternal.UnknownNodeType) { precisionField.SetEnabled(false); } nodeSettings.Add(propertyRow); } propertyVisualElement = precisionField; return(nodeSettings); }
public VisualElement DrawProperty( PropertyInfo propertyInfo, object actualObject, InspectableAttribute attribute) { return(this.CreateGUI( // Use the setter from the provided property as the callback newBoolValue => propertyInfo.GetSetMethod(true).Invoke(actualObject, new object[] { newBoolValue }), (ToggleData)propertyInfo.GetValue(actualObject), attribute.labelName, out var propertyVisualElement)); }
public VisualElement DrawProperty( PropertyInfo propertyInfo, object actualObject, InspectableAttribute attribute) { return(this.CreateGUI(newEnumValue => propertyInfo.GetSetMethod(true).Invoke(actualObject, new object[] { newEnumValue }), (Enum)propertyInfo.GetValue(actualObject), attribute.labelName, (Enum)attribute.defaultValue, out var propertyVisualElement)); }
VisualElement CreateGUI(SubGraphOutputNode node, InspectableAttribute attribute, out VisualElement propertyVisualElement) { var propertySheet = new PropertySheet(PropertyDrawerUtils.CreateLabel($"{node.name} Node", 0, FontStyle.Bold)); var inputListView = new ReorderableSlotListView(node, SlotType.Input); inputListView.OnAddCallback += list => inspectorUpdateDelegate(); inputListView.OnRemoveCallback += list => inspectorUpdateDelegate(); inputListView.OnListRecreatedCallback += () => inspectorUpdateDelegate(); propertySheet.Add(inputListView); propertyVisualElement = propertySheet; return(propertySheet); }
public VisualElement DrawProperty( PropertyInfo propertyInfo, object actualObject, InspectableAttribute attribute) { var propertySheet = new PropertySheet(); shaderInput = actualObject as ShaderInput; BuildExposedField(propertySheet); BuildReferenceNameField(propertySheet); BuildPropertyFields(propertySheet); BuildKeywordFields(propertySheet, shaderInput); return(propertySheet); }
VisualElement CreateGUI(SubGraphOutputNode node, InspectableAttribute attribute, out VisualElement propertyVisualElement) { var propertySheet = new PropertySheet(PropertyDrawerUtils.CreateLabel($"{node.name} Node", 0, FontStyle.Bold)); PropertyDrawerUtils.AddDefaultNodeProperties(propertySheet, node, m_setNodesAsDirtyCallback, m_updateNodeViewsCallback); var inputListView = new ReorderableSlotListView(node, SlotType.Input, false); inputListView.OnAddCallback += list => inspectorUpdateDelegate(); inputListView.OnRemoveCallback += list => inspectorUpdateDelegate(); inputListView.OnListRecreatedCallback += () => inspectorUpdateDelegate(); inputListView.AllowedTypeCallback = SlotValueHelper.AllowedAsSubgraphOutput; propertySheet.Add(inputListView); propertyVisualElement = propertySheet; return(propertySheet); }
public VisualElement DrawProperty(PropertyInfo propertyInfo, object actualObject, InspectableAttribute attribute) { return(this.CreateGUI((GraphData)actualObject)); }
VisualElement CreateGUI(SampleVirtualTextureNode node, InspectableAttribute attribute, out VisualElement propertyVisualElement) { PropertySheet propertySheet = new PropertySheet(); var enumPropertyDrawer = new EnumPropertyDrawer(); propertySheet.Add(enumPropertyDrawer.CreateGUI((newValue) => { if (node.addressMode == (SampleVirtualTextureNode.AddressMode)newValue) { return; } node.owner.owner.RegisterCompleteObjectUndo("Address Mode Change"); node.addressMode = (SampleVirtualTextureNode.AddressMode)newValue; }, node.addressMode, "Address Mode", SampleVirtualTextureNode.AddressMode.VtAddressMode_Wrap, out var addressModeVisualElement)); propertySheet.Add(enumPropertyDrawer.CreateGUI((newValue) => { if (node.lodCalculation == (SampleVirtualTextureNode.LodCalculation)newValue) { return; } node.owner.owner.RegisterCompleteObjectUndo("Lod Mode Change"); node.lodCalculation = (SampleVirtualTextureNode.LodCalculation)newValue; }, node.lodCalculation, "Lod Mode", SampleVirtualTextureNode.LodCalculation.VtLevel_Automatic, out var lodCalculationVisualElement)); propertySheet.Add(enumPropertyDrawer.CreateGUI((newValue) => { if (node.sampleQuality == (SampleVirtualTextureNode.QualityMode)newValue) { return; } node.owner.owner.RegisterCompleteObjectUndo("Quality Change"); node.sampleQuality = (SampleVirtualTextureNode.QualityMode)newValue; }, node.sampleQuality, "Quality", SampleVirtualTextureNode.QualityMode.VtSampleQuality_High, out var qualityVisualElement)); var boolPropertyDrawer = new BoolPropertyDrawer(); propertySheet.Add(boolPropertyDrawer.CreateGUI((newValue) => { if (node.noFeedback == !newValue) { return; } node.owner.owner.RegisterCompleteObjectUndo("Feedback Settings Change"); node.noFeedback = !newValue; }, !node.noFeedback, "Automatic Streaming", out var propertyToggle)); propertySheet.Add(boolPropertyDrawer.CreateGUI((newValue) => { if (node.enableGlobalMipBias == newValue) { return; } node.owner.owner.RegisterCompleteObjectUndo("Enable Global Mip Bias VT Change"); node.enableGlobalMipBias = newValue; }, node.enableGlobalMipBias, "Use Global Mip Bias", out var enableGlobalMipBias)); // display warning if the current master node doesn't support virtual texturing // TODO: Add warning when no active subTarget supports VT // if (!node.owner.isSubGraph) // { // bool supportedByMasterNode = // node.owner.GetNodes<IMasterNode>().FirstOrDefault()?.supportsVirtualTexturing ?? false; // if (!supportedByMasterNode) // propertySheet.Add(new HelpBoxRow(MessageType.Warning), // (row) => row.Add(new Label( // "The current master node does not support Virtual Texturing, this node will do regular 2D sampling."))); // } // display warning if the current render pipeline doesn't support virtual texturing IVirtualTexturingEnabledRenderPipeline vtRp = GraphicsSettings.currentRenderPipeline as IVirtualTexturingEnabledRenderPipeline; if (vtRp == null) { propertySheet.Add(new HelpBoxRow(MessageType.Warning), (row) => row.Add(new Label( "The current render pipeline does not support Virtual Texturing, this node will do regular 2D sampling."))); } else if (vtRp.virtualTexturingEnabled == false) { propertySheet.Add(new HelpBoxRow(MessageType.Warning), (row) => row.Add(new Label( "The current render pipeline has disabled Virtual Texturing, this node will do regular 2D sampling."))); } else { #if !ENABLE_VIRTUALTEXTURES propertySheet.Add(new HelpBoxRow(MessageType.Warning), (row) => row.Add(new Label( "Virtual Texturing is disabled globally (possibly by the render pipeline settings), this node will do regular 2D sampling."))); #endif } propertyVisualElement = propertySheet; return(propertySheet); }
public Descriptor(Component component, PropertyInfo info, InspectableAttribute attr) { this.component = component; this.propertyInfo = info; this.attr = attr; }
public VisualElement DrawProperty(PropertyInfo propertyInfo, object actualObject, InspectableAttribute attribute) { return(this.CreateGUI( (AbstractMaterialNode)actualObject, attribute, out var propertyVisualElement)); }
public void reflect(ObjectInspectableInfo parent, object instance, Sleek2Element panel) { if (instance == null) { panel.addElement(new Sleek2Label { transform = { anchorMin = new Vector2(0f, 1f), anchorMax = new Vector2(1f, 1f), pivot = new Vector2(0f, 1f), sizeDelta = new Vector2(0f, 30f) }, textComponent = { text = "null" } }); return; } Type type = instance.GetType(); if (type.IsArray) { Array newArray = instance as Array; Type elementType = type.GetElementType(); Sleek2InspectorArray element = new Sleek2InspectorArray(this, parent, newArray, elementType); panel.addElement(element); } else if (type.IsGenericType && typeof(IList).IsAssignableFrom(type)) { IList newList = instance as IList; Type newListType = type.GetGenericArguments()[0]; IInspectableList newInspectable = instance as IInspectableList; Sleek2InspectorList element2 = new Sleek2InspectorList(this, parent, newList, newListType, newInspectable); panel.addElement(element2); } foreach (FieldInfo fieldInfo in type.GetFields(BindingFlags.Instance | BindingFlags.Public)) { object[] customAttributes = fieldInfo.GetCustomAttributes(typeof(InspectableAttribute), false); if (customAttributes.Length > 0) { InspectableAttribute inspectableAttribute = customAttributes[0] as InspectableAttribute; Sleek2TypeInspector sleek2TypeInspector = TypeInspectorRegistry.inspect(fieldInfo.FieldType); if (sleek2TypeInspector != null) { sleek2TypeInspector.inspect(new ObjectInspectableField(parent, fieldInfo, this.instance as IDirtyable, instance, inspectableAttribute.name, inspectableAttribute.tooltip)); panel.addElement(sleek2TypeInspector); } else { Sleek2InspectorFoldout sleek2InspectorFoldout = new Sleek2InspectorFoldout(); sleek2InspectorFoldout.transform.anchorMin = new Vector2(0f, 1f); sleek2InspectorFoldout.transform.anchorMax = new Vector2(1f, 1f); sleek2InspectorFoldout.transform.pivot = new Vector2(0.5f, 1f); sleek2InspectorFoldout.transform.sizeDelta = new Vector2(0f, (float)Sleek2Config.bodyHeight); sleek2InspectorFoldout.label.translation = new TranslatedText(inspectableAttribute.name); sleek2InspectorFoldout.label.translation.format(); sleek2InspectorFoldout.label.tooltip = new TranslatedText(inspectableAttribute.tooltip); sleek2InspectorFoldout.label.tooltip.format(); panel.addElement(sleek2InspectorFoldout); this.reflect(new ObjectInspectableField(parent, fieldInfo, this.instance as IDirtyable, instance, TranslationReference.invalid, TranslationReference.invalid), fieldInfo.GetValue(instance), sleek2InspectorFoldout.contents); if (this.collapseFoldoutsByDefault) { sleek2InspectorFoldout.isOpen = false; } } } } foreach (PropertyInfo propertyInfo in type.GetProperties(BindingFlags.Instance | BindingFlags.Public)) { object[] customAttributes2 = propertyInfo.GetCustomAttributes(typeof(InspectableAttribute), false); if (customAttributes2.Length > 0) { InspectableAttribute inspectableAttribute2 = customAttributes2[0] as InspectableAttribute; Sleek2TypeInspector sleek2TypeInspector2 = TypeInspectorRegistry.inspect(propertyInfo.PropertyType); if (sleek2TypeInspector2 != null) { sleek2TypeInspector2.inspect(new ObjectInspectableProperty(parent, propertyInfo, this.instance as IDirtyable, instance, inspectableAttribute2.name, inspectableAttribute2.tooltip)); panel.addElement(sleek2TypeInspector2); } else { Sleek2InspectorFoldout sleek2InspectorFoldout2 = new Sleek2InspectorFoldout(); sleek2InspectorFoldout2.transform.anchorMin = new Vector2(0f, 1f); sleek2InspectorFoldout2.transform.anchorMax = new Vector2(1f, 1f); sleek2InspectorFoldout2.transform.pivot = new Vector2(0.5f, 1f); sleek2InspectorFoldout2.transform.sizeDelta = new Vector2(0f, (float)Sleek2Config.bodyHeight); sleek2InspectorFoldout2.label.translation = new TranslatedText(inspectableAttribute2.name); sleek2InspectorFoldout2.label.translation.format(); sleek2InspectorFoldout2.label.tooltip = new TranslatedText(inspectableAttribute2.tooltip); sleek2InspectorFoldout2.label.tooltip.format(); panel.addElement(sleek2InspectorFoldout2); this.reflect(new ObjectInspectableProperty(parent, propertyInfo, this.instance as IDirtyable, instance, TranslationReference.invalid, TranslationReference.invalid), propertyInfo.GetValue(instance, null), sleek2InspectorFoldout2.contents); if (this.collapseFoldoutsByDefault) { sleek2InspectorFoldout2.isOpen = false; } } } } }
public Descriptor(Component component, FieldInfo info, InspectableAttribute attr) { this.component = component; this.fieldInfo = info; this.attr = attr; }
public Descriptor(Component component, FieldInfo info, InspectableAttribute attr) { this.component = component; this.info = info; this.attr = attr; }
public VisualElement DrawProperty(PropertyInfo propertyInfo, object actualObject, InspectableAttribute attribute) { return(this.CreateGUI( // Use the setter from the provided property as the callback newSelectedIndex => propertyInfo.GetSetMethod(true).Invoke(actualObject, new object[] { newSelectedIndex }), (IEnumerable <string>)propertyInfo.GetValue(actualObject), attribute.labelName, out var textArrayField)); }
public VisualElement DrawProperty(PropertyInfo propertyInfo, object actualObject, InspectableAttribute attribute) { return(this.CreateGUI( // Use the setter from the provided property as the callback newValue => propertyInfo.GetSetMethod(true).Invoke(actualObject, new object[] { newValue }), (ShaderGUIOverrideInfo)propertyInfo.GetValue(actualObject), out var textArrayField)); }