public void SetOutputSizeEnumTest() { Substance.Game.Substance subs = SubstanceExtensionsTestData.Instance.TestSubstance; SubstanceGraph graph = subs.graphs[0]; int cachedSize = graph.GetInputVector2Int(SubstanceGraphExtensions.OutputSizeParameter)[0]; SubstanceOutputSize newSize = cachedSize == 9 ? SubstanceOutputSize._1024 : SubstanceOutputSize._512; Debug.Log(graph.GetGeneratedTextures()[0].width); graph.SetOutputSize(newSize); //NativeFunctions.cppProcessOutputQueue(); graph.QueueForRender(); Substance.Game.Substance.RenderSubstancesSync(); int width = graph.GetGeneratedTextures()[0].width; Debug.Log(graph.GetGeneratedTextures()[0].width); Assert.AreEqual(width, (newSize == SubstanceOutputSize._1024 ? 1024 : 512)); graph.SetOutputSize(cachedSize); //NativeFunctions.cppProcessOutputQueue(); graph.QueueForRender(); Substance.Game.Substance.RenderSubstancesSync(); }
public void SetOutputSizeTest() { Substance.Game.Substance subs = SubstanceExtensionsTestData.Instance.TestSubstance; SubstanceGraph graph = subs.graphs[0]; int cachedSize = graph.GetInputVector2Int(SubstanceGraphExtensions.OutputSizeParameter)[0]; int newSize = cachedSize == 9 ? 10 : 9; graph.SetOutputSize(newSize); graph.QueueForRender(); Substance.Game.Substance.RenderSubstancesSync(); int width = graph.GetGeneratedTextures()[0].width; Debug.Log(string.Format("{0} | {1} | {2} - {3}", width, (newSize == 10 ? 1024 : 512), cachedSize, newSize)); Assert.AreEqual(width, (newSize == 10 ? 1024 : 512)); graph.SetOutputSize(cachedSize); graph.QueueForRender(); Substance.Game.Substance.RenderSubstancesSync(); }
private void OnGUI() { EditorGUI.BeginChangeCheck(); substance = (Substance.Game.Substance)EditorGUILayout.ObjectField(SubstanceLabel, substance, typeof(Substance.Game.Substance), false); if (EditorGUI.EndChangeCheck()) { RegenerateTextures(); } //Safety check since recompilation or adjustments to the substance seem to remove the reference to the substance. if ((substance == null && graphNames.Count > 0) || (substance != null && textures.Count == 0)) { RegenerateTextures(); } if (graphNames.Count > 0) { DrawTextures(); } EditorGUILayout.Space(); bool cachedGUI = GUI.enabled; if (substance == null) { GUI.enabled = false; } if (GUILayout.Button(ButtonLabel)) { ExportTextures(); } if (!GUI.enabled) { GUI.enabled = cachedGUI; } if (substance != null) { EditorGUILayout.Space(); for (int i = 0; i < textureNames.Count; i++) { graphExportExpansions[i] = EditorGUILayout.Foldout(graphExportExpansions[i], new GUIContent(graphNames[i], string.Format("Export individual textures for the [{0}] graph.", graphNames[i])), true); if (graphExportExpansions[i]) { for (int j = 0; j < textureNames[i].Count; j++) { Rect buttonRect = EditorGUILayout.GetControlRect(GUILayout.Height(EditorGUIUtility.singleLineHeight + (EditorGUIUtility.standardVerticalSpacing * 1f))); buttonRect.Set(buttonRect.x + EditorGUIUtility.singleLineHeight, buttonRect.y, buttonRect.width - EditorGUIUtility.singleLineHeight, buttonRect.height); if (GUI.Button(buttonRect, new GUIContent(textureNames[i][j], string.Format("Export the [{0}] texture from the [{1}] graph.", textureNames[i][j], graphNames[i])))) { ExportTexture(textureNames[i][j], i, j); } } } } } }