Tim Cooper
7 年前
当前提交
34cc0f15
共有 33 个文件被更改,包括 414 次插入 和 528 次删除
-
8MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Runtime/Assets/IGraphAsset.cs
-
33MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Runtime/Assets/SerializableGraphAsset.cs
-
4MaterialGraphProject/Assets/UnityShaderEditor/Editor/AssetCallbacks/CreateRemapGraph.cs
-
9MaterialGraphProject/Assets/UnityShaderEditor/Editor/AssetCallbacks/CreateShaderSubGraph.cs
-
65MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/MaterialGraphPresenter.cs
-
4MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/Nodes/RemapInputNodePresenter.cs
-
4MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/Nodes/RemapMasterNodePresenter.cs
-
22MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/TitleBarPresenter.cs
-
16MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Views/MaterialGraphView.cs
-
4MaterialGraphProject/Assets/UnityShaderEditor/Editor/Importers/ShaderGraphImporter.cs
-
8MaterialGraphProject/Assets/UnityShaderEditor/Editor/Importers/ShaderSubGraphImporter.cs
-
16MaterialGraphProject/Assets/UnityShaderEditor/Editor/Util/CreateSerializableGraph.cs
-
27MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Graphs/AbstractMaterialGraphAsset.cs
-
4MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Graphs/IMaterialGraphAsset.cs
-
25MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Graphs/MaterialGraphAsset.cs
-
4MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Remapper/MasterRemapGraph.cs
-
3MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Remapper/MasterRemapInputNode.cs
-
4MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Remapper/MaterialRemapAsset.cs
-
4MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Remapper/RemapMasterNode.cs
-
15MaterialGraphProject/Assets/UnityShaderEditor/Runtime/SubGraph/MaterialSubGraphAsset.cs
-
6MaterialGraphProject/Assets/UnityShaderEditor/Runtime/SubGraph/SubGraph.cs
-
230MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/AbstractMaterialGraphEditWindow.cs
-
13MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/AbstractMaterialGraphEditWindow.cs.meta
-
42MaterialGraphProject/Assets/UnityShaderEditor/Editor/Importers/ShaderSubGraphImporterEditor.cs
-
13MaterialGraphProject/Assets/UnityShaderEditor/Editor/Importers/ShaderSubGraphImporterEditor.cs.meta
-
36MaterialGraphProject/Assets/UnityShaderEditor/Editor/Testing/IntegrationTests/Graphs/graphs_Cracks.mat
-
10MaterialGraphProject/Assets/UnityShaderEditor/Editor/Testing/IntegrationTests/Graphs/graphs_Cracks.mat.meta
-
12MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/MaterialGraphEditWindow.cs.meta
-
211MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/MaterialGraphEditWindow.cs
-
71MaterialGraphProject/UnityProject.sln.DotSettings
-
2MaterialGraphProject/MaterialGraphProject.CSharp.Editor.csproj.DotSettings
-
2MaterialGraphProject/MaterialGraphProject.CSharp.csproj.DotSettings
-
15MaterialGraphProject/MaterialGraphProject.sln.DotSettings.user
|
|||
namespace UnityEngine.Graphing |
|||
{ |
|||
public interface IGraphAsset |
|||
{ |
|||
IGraph graph { get; } |
|||
bool shouldRepaint { get; } |
|||
GraphDrawingData drawingData { get; } |
|||
ScriptableObject GetScriptableObject(); |
|||
void OnEnable(); |
|||
} |
|||
|
|||
} |
|
|||
namespace UnityEngine.Graphing |
|||
{ |
|||
public class SerializableGraphAsset : ScriptableObject, IGraphAsset, IOnAssetEnabled |
|||
{ |
|||
[SerializeField] |
|||
private SerializableGraph m_Graph = new SerializableGraph(); |
|||
|
|||
public IGraph graph |
|||
{ |
|||
get { return m_Graph; } |
|||
} |
|||
|
|||
public bool shouldRepaint |
|||
{ |
|||
get { return false; } |
|||
} |
|||
|
|||
public ScriptableObject GetScriptableObject() |
|||
{ |
|||
return this; |
|||
} |
|||
|
|||
public void OnEnable() |
|||
{ |
|||
graph.OnEnable(); |
|||
} |
|||
|
|||
[SerializeField] |
|||
private GraphDrawingData m_DrawingData = new GraphDrawingData(); |
|||
|
|||
public GraphDrawingData drawingData |
|||
{ |
|||
get { return m_DrawingData; } |
|||
} |
|||
} |
|||
} |
|
|||
using System.Linq; |
|||
using UnityEngine.Graphing; |
|||
|
|||
public class MaterialSubGraphAsset : AbstractMaterialGraphAsset |
|||
public class MaterialSubGraphAsset : ScriptableObject |
|||
public override IGraph graph |
|||
{ |
|||
get { return m_MaterialSubGraph; } |
|||
} |
|||
|
|||
} |
|||
|
|||
public void PostCreate() |
|||
{ |
|||
m_MaterialSubGraph.PostCreate(); |
|||
} |
|||
} |
|||
} |
|
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.IO; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using UnityEditor.Experimental.UIElements.GraphView; |
|||
using UnityEngine; |
|||
using UnityEngine.Graphing; |
|||
using UnityEngine.MaterialGraph; |
|||
using Object = UnityEngine.Object; |
|||
|
|||
namespace UnityEditor.MaterialGraph.Drawing |
|||
{ |
|||
public interface IMaterialGraphEditWindow |
|||
{ |
|||
void PingAsset(); |
|||
|
|||
void UpdateAsset(); |
|||
|
|||
void Repaint(); |
|||
|
|||
void ToggleRequiresTime(); |
|||
} |
|||
|
|||
public class MaterialGraphEditWindow : AbstractMaterialGraphEditWindow<UnityEngine.MaterialGraph.MaterialGraph> |
|||
{ } |
|||
public class SubGraphEditWindow : AbstractMaterialGraphEditWindow<SubGraph> |
|||
{ } |
|||
|
|||
public abstract class AbstractMaterialGraphEditWindow<TGraphType> : EditorWindow, IMaterialGraphEditWindow where TGraphType : AbstractMaterialGraph |
|||
{ |
|||
public static bool allowAlwaysRepaint = true; |
|||
|
|||
[SerializeField] |
|||
Object m_Selected; |
|||
|
|||
[SerializeField] |
|||
TGraphType m_InMemoryAsset; |
|||
|
|||
GraphEditorView m_GraphEditorView; |
|||
|
|||
public TGraphType inMemoryAsset |
|||
{ |
|||
get { return m_InMemoryAsset; } |
|||
set { m_InMemoryAsset = value; } |
|||
} |
|||
|
|||
public Object selected |
|||
{ |
|||
get { return m_Selected; } |
|||
set { m_Selected = value; } |
|||
} |
|||
|
|||
public MaterialGraphPresenter CreateDataSource() |
|||
{ |
|||
return CreateInstance<MaterialGraphPresenter>(); |
|||
} |
|||
|
|||
public GraphView CreateGraphView() |
|||
{ |
|||
return new MaterialGraphView(this); |
|||
} |
|||
|
|||
void OnEnable() |
|||
{ |
|||
m_GraphEditorView = new GraphEditorView(CreateGraphView()); |
|||
rootVisualContainer.Add(m_GraphEditorView); |
|||
var source = CreateDataSource(); |
|||
source.Initialize(inMemoryAsset, this); |
|||
m_GraphEditorView.presenter = source; |
|||
} |
|||
|
|||
void OnDisable() |
|||
{ |
|||
rootVisualContainer.Clear(); |
|||
} |
|||
|
|||
void OnGUI() |
|||
{ |
|||
var presenter = m_GraphEditorView.presenter; |
|||
var e = Event.current; |
|||
|
|||
if (e.type == EventType.ValidateCommand && ( |
|||
e.commandName == "Copy" && presenter.canCopy |
|||
|| e.commandName == "Paste" && presenter.canPaste |
|||
|| e.commandName == "Duplicate" && presenter.canDuplicate |
|||
|| e.commandName == "Cut" && presenter.canCut |
|||
|| (e.commandName == "Delete" || e.commandName == "SoftDelete") && presenter.canDelete)) |
|||
{ |
|||
e.Use(); |
|||
} |
|||
|
|||
if (e.type == EventType.ExecuteCommand) |
|||
{ |
|||
if (e.commandName == "Copy") |
|||
presenter.Copy(); |
|||
if (e.commandName == "Paste") |
|||
presenter.Paste(); |
|||
if (e.commandName == "Duplicate") |
|||
presenter.Duplicate(); |
|||
if (e.commandName == "Cut") |
|||
presenter.Cut(); |
|||
if (e.commandName == "Delete" || e.commandName == "SoftDelete") |
|||
presenter.Delete(); |
|||
} |
|||
} |
|||
|
|||
public void PingAsset() |
|||
{ |
|||
if (selected != null) |
|||
EditorGUIUtility.PingObject(selected); |
|||
} |
|||
|
|||
public void UpdateAsset() |
|||
{ |
|||
if (selected != null && inMemoryAsset != null) |
|||
{ |
|||
var path = AssetDatabase.GetAssetPath(selected); |
|||
if (string.IsNullOrEmpty(path) || inMemoryAsset == null) |
|||
{ |
|||
return; |
|||
} |
|||
|
|||
if (typeof(TGraphType) == typeof(UnityEngine.MaterialGraph.MaterialGraph)) |
|||
UpdateShaderGraphOnDisk(path); |
|||
|
|||
if (typeof(TGraphType) == typeof(SubGraph)) |
|||
UpdateShaderSubGraphOnDisk(path); |
|||
} |
|||
} |
|||
|
|||
private void UpdateShaderSubGraphOnDisk(string path) |
|||
{ |
|||
var graph = inMemoryAsset as SubGraph; |
|||
if (graph == null) |
|||
return; |
|||
|
|||
File.WriteAllText(path, EditorJsonUtility.ToJson(inMemoryAsset)); |
|||
} |
|||
|
|||
private void UpdateShaderGraphOnDisk(string path) |
|||
{ |
|||
var graph = inMemoryAsset as UnityEngine.MaterialGraph.MaterialGraph; |
|||
if (graph == null) |
|||
return; |
|||
|
|||
var masterNode = graph.masterNode; |
|||
if (masterNode == null) |
|||
return; |
|||
|
|||
List<PropertyGenerator.TextureInfo> configuredTextures; |
|||
masterNode.GetFullShader(GenerationMode.ForReals, "NotNeeded", out configuredTextures); |
|||
|
|||
var shaderImporter = AssetImporter.GetAtPath(path) as ShaderImporter; |
|||
if (shaderImporter == null) |
|||
return; |
|||
|
|||
var textureNames = new List<string>(); |
|||
var textures = new List<Texture>(); |
|||
foreach (var textureInfo in configuredTextures.Where( |
|||
x => x.modifiable == TexturePropertyChunk.ModifiableState.Modifiable)) |
|||
{ |
|||
var texture = EditorUtility.InstanceIDToObject(textureInfo.textureId) as Texture; |
|||
if (texture == null) |
|||
continue; |
|||
textureNames.Add(textureInfo.name); |
|||
textures.Add(texture); |
|||
} |
|||
shaderImporter.SetDefaultTextures(textureNames.ToArray(), textures.ToArray()); |
|||
|
|||
textureNames.Clear(); |
|||
textures.Clear(); |
|||
foreach (var textureInfo in configuredTextures.Where( |
|||
x => x.modifiable == TexturePropertyChunk.ModifiableState.NonModifiable)) |
|||
{ |
|||
var texture = EditorUtility.InstanceIDToObject(textureInfo.textureId) as Texture; |
|||
if (texture == null) |
|||
continue; |
|||
textureNames.Add(textureInfo.name); |
|||
textures.Add(texture); |
|||
} |
|||
shaderImporter.SetNonModifiableTextures(textureNames.ToArray(), textures.ToArray()); |
|||
File.WriteAllText(path, EditorJsonUtility.ToJson(inMemoryAsset)); |
|||
shaderImporter.SaveAndReimport(); |
|||
AssetDatabase.ImportAsset(path); |
|||
} |
|||
|
|||
public virtual void ToggleRequiresTime() |
|||
{ |
|||
allowAlwaysRepaint = !allowAlwaysRepaint; |
|||
} |
|||
|
|||
public void ChangeSelction(Object newSelection) |
|||
{ |
|||
if (!EditorUtility.IsPersistent(newSelection)) |
|||
return; |
|||
|
|||
if (selected == newSelection) |
|||
return; |
|||
|
|||
if (selected != null) |
|||
{ |
|||
if (EditorUtility.DisplayDialog("Save Old Graph?", "Save Old Graph?", "yes!", "no")) |
|||
{ |
|||
UpdateAsset(); |
|||
} |
|||
} |
|||
|
|||
selected = newSelection; |
|||
|
|||
var path = AssetDatabase.GetAssetPath(newSelection); |
|||
var textGraph = File.ReadAllText(path, Encoding.UTF8); |
|||
inMemoryAsset = JsonUtility.FromJson<TGraphType>(textGraph); |
|||
inMemoryAsset.OnEnable(); |
|||
inMemoryAsset.ValidateGraph(); |
|||
|
|||
var source = CreateDataSource(); |
|||
source.Initialize(inMemoryAsset, this); |
|||
m_GraphEditorView.presenter = source; |
|||
|
|||
//m_GraphView.StretchToParentSize();
|
|||
Repaint(); |
|||
/*if (refocus) |
|||
{ |
|||
focused = false; |
|||
m_GraphEditorDrawer.graphView.Schedule (Focus).StartingIn (1).Until (() => focused); |
|||
}*/ |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 924ffcbe75518854f97b48776d0f1939 |
|||
timeCreated: 1503176078 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEditor; |
|||
using UnityEditor.Experimental.AssetImporters; |
|||
using UnityEditor.MaterialGraph.Drawing; |
|||
using UnityEngine; |
|||
using Debug = System.Diagnostics.Debug; |
|||
|
|||
[CustomEditor(typeof(ShaderSubGraphImporter))] |
|||
public class ShaderSubGraphImporterEditor : ScriptedImporterEditor |
|||
{ |
|||
public override void OnInspectorGUI() |
|||
{ |
|||
if (GUILayout.Button("Open Shader Editor")) |
|||
{ |
|||
AssetImporter importer = target as AssetImporter; |
|||
Debug.Assert(importer != null, "importer != null"); |
|||
ShowGraphEditWindow(importer.assetPath); |
|||
} |
|||
|
|||
} |
|||
private static void ShowGraphEditWindow(string path) |
|||
{ |
|||
var asset = AssetDatabase.LoadAssetAtPath<Object>(path); |
|||
var windows = Resources.FindObjectsOfTypeAll<SubGraphEditWindow>(); |
|||
bool foundWindow = false; |
|||
foreach (var w in windows) |
|||
{ |
|||
if (w.selected == asset) |
|||
{ |
|||
foundWindow = true; |
|||
w.Focus(); |
|||
} |
|||
} |
|||
|
|||
if (!foundWindow) |
|||
{ |
|||
var window = CreateInstance<SubGraphEditWindow>(); |
|||
window.Show(); |
|||
window.ChangeSelction(asset); |
|||
} |
|||
} |
|||
} |
|||
|
|
|||
fileFormatVersion: 2 |
|||
guid: ca6b9d3e5c1927e4cb49fc3107f72c1c |
|||
timeCreated: 1503169819 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: graphs_Cracks |
|||
m_Shader: {fileID: 4800000, guid: a8cb0d181b460aa4bac2693ce3bfc1ad, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 0 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture2D_Texture2D_CF0DB0B2_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: 7296f51323ae9485a9c834c4e3d722ed, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture2D_Texture2D_D8FD66BB_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: cbf8f30fb344d2c48b8c6739b327ac7d, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture2D_Texture2D_DF8FC6BF_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: 9d64a9e7ca6864704ae6b8ca7afc9d85, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- Vector1_Vector1_2852A57B_Uniform: 2.75 |
|||
m_Colors: |
|||
- Color_Color_B59542C3_Uniform: {r: 0, g: 0.201217, b: 0.9411765, a: 0} |
|
|||
fileFormatVersion: 2 |
|||
guid: 368cc6243361aa043933e1fc5a83edbf |
|||
timeCreated: 1503176184 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: fb95846b17a86ec45871d69d00c26882 |
|||
timeCreated: 1465550266 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.IO; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using UnityEditor.Experimental.UIElements.GraphView; |
|||
using UnityEngine; |
|||
using UnityEngine.Graphing; |
|||
using UnityEngine.MaterialGraph; |
|||
using Object = UnityEngine.Object; |
|||
|
|||
namespace UnityEditor.MaterialGraph.Drawing |
|||
{ |
|||
public class MaterialGraphEditWindow : EditorWindow, ISerializationCallbackReceiver |
|||
{ |
|||
public static bool allowAlwaysRepaint = true; |
|||
|
|||
bool shouldRepaint |
|||
{ |
|||
get { return allowAlwaysRepaint && inMemoryAsset != null && inMemoryAsset.shouldRepaint; } |
|||
} |
|||
|
|||
[SerializeField] |
|||
Object m_Selected; |
|||
|
|||
[SerializeField] |
|||
MaterialGraphAsset m_InMemoryAsset; |
|||
|
|||
GraphEditorView m_GraphEditorView; |
|||
|
|||
public IGraphAsset inMemoryAsset |
|||
{ |
|||
get { return m_InMemoryAsset; } |
|||
set { m_InMemoryAsset = value as MaterialGraphAsset; } |
|||
} |
|||
|
|||
public Object selected |
|||
{ |
|||
get { return m_Selected; } |
|||
set { m_Selected = value; } |
|||
} |
|||
|
|||
public MaterialGraphPresenter CreateDataSource() |
|||
{ |
|||
return CreateInstance<MaterialGraphPresenter>(); |
|||
} |
|||
|
|||
public GraphView CreateGraphView() |
|||
{ |
|||
return new MaterialGraphView(this); |
|||
} |
|||
|
|||
void OnEnable() |
|||
{ |
|||
m_GraphEditorView = new GraphEditorView(CreateGraphView()); |
|||
rootVisualContainer.Add(m_GraphEditorView); |
|||
var source = CreateDataSource(); |
|||
source.Initialize(inMemoryAsset, this); |
|||
m_GraphEditorView.presenter = source; |
|||
} |
|||
|
|||
void OnDisable() |
|||
{ |
|||
rootVisualContainer.Clear(); |
|||
} |
|||
|
|||
void Update() |
|||
{ |
|||
if (shouldRepaint) |
|||
Repaint(); |
|||
} |
|||
|
|||
void OnGUI() |
|||
{ |
|||
var presenter = m_GraphEditorView.presenter; |
|||
var e = Event.current; |
|||
|
|||
if (e.type == EventType.ValidateCommand && ( |
|||
e.commandName == "Copy" && presenter.canCopy |
|||
|| e.commandName == "Paste" && presenter.canPaste |
|||
|| e.commandName == "Duplicate" && presenter.canDuplicate |
|||
|| e.commandName == "Cut" && presenter.canCut |
|||
|| (e.commandName == "Delete" || e.commandName == "SoftDelete") && presenter.canDelete)) |
|||
{ |
|||
e.Use(); |
|||
} |
|||
|
|||
if (e.type == EventType.ExecuteCommand) |
|||
{ |
|||
if (e.commandName == "Copy") |
|||
presenter.Copy(); |
|||
if (e.commandName == "Paste") |
|||
presenter.Paste(); |
|||
if (e.commandName == "Duplicate") |
|||
presenter.Duplicate(); |
|||
if (e.commandName == "Cut") |
|||
presenter.Cut(); |
|||
if (e.commandName == "Delete" || e.commandName == "SoftDelete") |
|||
presenter.Delete(); |
|||
} |
|||
} |
|||
|
|||
public void PingAsset() |
|||
{ |
|||
if (selected != null) |
|||
EditorGUIUtility.PingObject(selected); |
|||
} |
|||
|
|||
public void UpdateAsset() |
|||
{ |
|||
if (selected != null && inMemoryAsset != null) |
|||
{ |
|||
var path = AssetDatabase.GetAssetPath(selected); |
|||
if (string.IsNullOrEmpty(path) || inMemoryAsset == null) |
|||
{ |
|||
return; |
|||
} |
|||
|
|||
var masterNode = ((MaterialGraphAsset)inMemoryAsset).materialGraph.masterNode; |
|||
if (masterNode == null) |
|||
return; |
|||
|
|||
List<PropertyGenerator.TextureInfo> configuredTextures; |
|||
masterNode.GetFullShader(GenerationMode.ForReals, "NotNeeded", out configuredTextures); |
|||
|
|||
var shaderImporter = AssetImporter.GetAtPath(path) as ShaderImporter; |
|||
if (shaderImporter == null) |
|||
return; |
|||
|
|||
var textureNames = new List<string>(); |
|||
var textures = new List<Texture>(); |
|||
foreach (var textureInfo in configuredTextures.Where( |
|||
x => x.modifiable == TexturePropertyChunk.ModifiableState.Modifiable)) |
|||
{ |
|||
var texture = EditorUtility.InstanceIDToObject(textureInfo.textureId) as Texture; |
|||
if (texture == null) |
|||
continue; |
|||
textureNames.Add(textureInfo.name); |
|||
textures.Add(texture); |
|||
} |
|||
shaderImporter.SetDefaultTextures(textureNames.ToArray(), textures.ToArray()); |
|||
|
|||
textureNames.Clear(); |
|||
textures.Clear(); |
|||
foreach (var textureInfo in configuredTextures.Where( |
|||
x => x.modifiable == TexturePropertyChunk.ModifiableState.NonModifiable)) |
|||
{ |
|||
var texture = EditorUtility.InstanceIDToObject(textureInfo.textureId) as Texture; |
|||
if (texture == null) |
|||
continue; |
|||
textureNames.Add(textureInfo.name); |
|||
textures.Add(texture); |
|||
} |
|||
shaderImporter.SetNonModifiableTextures(textureNames.ToArray(), textures.ToArray()); |
|||
File.WriteAllText(path, EditorJsonUtility.ToJson(inMemoryAsset.graph)); |
|||
shaderImporter.SaveAndReimport(); |
|||
AssetDatabase.ImportAsset(path); |
|||
} |
|||
} |
|||
|
|||
public virtual void ToggleRequiresTime() |
|||
{ |
|||
allowAlwaysRepaint = !allowAlwaysRepaint; |
|||
} |
|||
|
|||
public void ChangeSelction(Object newSelection) |
|||
{ |
|||
if (!EditorUtility.IsPersistent(newSelection)) |
|||
return; |
|||
|
|||
if (selected == newSelection) |
|||
return; |
|||
|
|||
if (selected != null) |
|||
{ |
|||
if (EditorUtility.DisplayDialog("Save Old Graph?", "Save Old Graph?", "yes!", "no")) |
|||
{ |
|||
UpdateAsset(); |
|||
} |
|||
} |
|||
|
|||
selected = newSelection; |
|||
|
|||
var mGraph = CreateInstance<MaterialGraphAsset>(); |
|||
var path = AssetDatabase.GetAssetPath(newSelection); |
|||
var textGraph = File.ReadAllText(path, Encoding.UTF8); |
|||
mGraph.materialGraph = JsonUtility.FromJson<UnityEngine.MaterialGraph.MaterialGraph>(textGraph); |
|||
|
|||
inMemoryAsset = mGraph; |
|||
var graph = inMemoryAsset.graph; |
|||
graph.OnEnable(); |
|||
graph.ValidateGraph(); |
|||
|
|||
var source = CreateDataSource(); |
|||
source.Initialize(inMemoryAsset, this); |
|||
m_GraphEditorView.presenter = source; |
|||
|
|||
//m_GraphView.StretchToParentSize();
|
|||
Repaint(); |
|||
/*if (refocus) |
|||
{ |
|||
focused = false; |
|||
m_GraphEditorDrawer.graphView.Schedule (Focus).StartingIn (1).Until (() => focused); |
|||
}*/ |
|||
} |
|||
|
|||
public void OnBeforeSerialize() { } |
|||
|
|||
public void OnAfterDeserialize() { } |
|||
} |
|||
} |
|
|||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> |
|||
<s:Boolean x:Key="/Default/CodeInspection/ExcludedFiles/FileMasksToSkip/=_002A_002Emin_002Ejs/@EntryIndexedValue">True</s:Boolean> |
|||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ParameterHidesMember/@EntryIndexedValue">DO_NOT_SHOW</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=TestCleanup/@EntryIndexedValue"><?xml version="1.0" encoding="utf-16"?><Profile name="TestCleanup"><CSUseVar><BehavourStyle>CAN_CHANGE_TO_IMPLICIT</BehavourStyle><LocalVariableStyle>IMPLICIT_WHEN_INITIALIZER_HAS_TYPE</LocalVariableStyle><ForeachVariableStyle>IMPLICIT_EXCEPT_PRIMITIVE_TYPES</ForeachVariableStyle></CSUseVar><CSReformatCode>True</CSReformatCode><CSShortenReferences>True</CSShortenReferences><CSReorderTypeMembers>True</CSReorderTypeMembers></Profile></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/CodeCleanup/SilentCleanupProfile/@EntryValue">TestCleanup</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CommonFormatter/ALIGNMENT_TAB_FILL_STYLE/@EntryValue">USE_TABS_ONLY</s:String> |
|||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ALIGN_FIRST_ARG_BY_PAREN/@EntryValue">True</s:Boolean> |
|||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ALLOW_COMMENT_AFTER_LBRACE/@EntryValue">True</s:Boolean> |
|||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_FIXED_BRACES_STYLE/@EntryValue">ONLY_FOR_MULTILINE</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_FOR_BRACES_STYLE/@EntryValue">ONLY_FOR_MULTILINE</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_FOREACH_BRACES_STYLE/@EntryValue">ONLY_FOR_MULTILINE</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_IFELSE_BRACES_STYLE/@EntryValue">ONLY_FOR_MULTILINE</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_USING_BRACES_STYLE/@EntryValue">ONLY_FOR_MULTILINE</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_WHILE_BRACES_STYLE/@EntryValue">ONLY_FOR_MULTILINE</s:String> |
|||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/LINE_FEED_AT_FILE_END/@EntryValue">True</s:Boolean> |
|||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AROUND_MULTIPLICATIVE_OP/@EntryValue">True</s:Boolean> |
|||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/STICK_COMMENT/@EntryValue">False</s:Boolean> |
|||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_AFTER_DECLARATION_LPAR/@EntryValue">True</s:Boolean> |
|||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_AFTER_INVOCATION_LPAR/@EntryValue">True</s:Boolean> |
|||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_ARGUMENTS_STYLE/@EntryValue">CHOP_IF_LONG</s:String> |
|||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_LINES/@EntryValue">False</s:Boolean> |
|||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_OBJECT_AND_COLLECTION_INITIALIZER_STYLE/@EntryValue">WRAP_IF_LONG</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_PARAMETERS_STYLE/@EntryValue">CHOP_IF_LONG</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_TERNARY_EXPR_STYLE/@EntryValue">WRAP_IF_LONG</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IOS/@EntryIndexedValue">IOS</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=JSON/@EntryIndexedValue">JSON</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=URL/@EntryIndexedValue">URL</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=WWW/@EntryIndexedValue">WWW</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/EventHandlerPatternLong/@EntryValue">$object$_On$event$</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Constants/@EntryIndexedValue"><Policy Inspect="True" Prefix="k" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=EnumMember/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Interfaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=LocalConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Locals/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=MethodPropertyEvent/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Other/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Parameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="k" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="m_" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="s_" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="s_" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PublicFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=StaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="s_" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=TypeParameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=TypesAndNamespaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=322f0158_002D32f7_002D4dbd_002D8074_002D5bab8e115868/@EntryIndexedValue"><Policy><Descriptor Staticness="Instance" AccessRightKinds="Private, Protected, ProtectedInternal, Internal" Description="Instance fields use m_UpperCamelCase"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="m_" Suffix="" Style="AaBb" /></Policy></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=61e4c291_002D6082_002D499a_002Dbca0_002D2998e9a033b0/@EntryIndexedValue"><Policy><Descriptor Staticness="Static" AccessRightKinds="Private, Protected, ProtectedInternal, Internal" Description="Static fields use s_UpperCamelCase"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="s_" Suffix="" Style="AaBb" /></Policy></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=62b83c0d_002D2de0_002D469b_002D8d70_002Db987142b7fcb/@EntryIndexedValue"><Policy><Descriptor Staticness="Static, Instance" AccessRightKinds="Private, Protected, ProtectedInternal, Internal, Public" Description="Properties use lowerCamelCase"><ElementKinds><Kind Name="PROPERTY" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=d746427c_002Daa4b_002D47f5_002D86f2_002Dd092c7b63ab9/@EntryIndexedValue"><Policy><Descriptor Staticness="Static, Instance" AccessRightKinds="Private, Protected, ProtectedInternal, Internal" Description=""><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="m_" Suffix="" Style="AaBb" /></Policy></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=e94c94df_002Dfc74_002D4278_002Da29b_002Dc332cc76b12c/@EntryIndexedValue"><Policy><Descriptor Staticness="Static, Instance" AccessRightKinds="Public" Description=""><ElementKinds><Kind Name="PROPERTY" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=eb7ed005_002D0654_002D43ef_002D8eac_002D79c84dc5ab3a/@EntryIndexedValue"><Policy><Descriptor Staticness="Static, Instance" AccessRightKinds="Public" Description="Public constants use UpperCamelCase"><ElementKinds><Kind Name="CONSTANT_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/EventHandlerPatternLong/@EntryValue">$object$_On$event$</s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Constants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="k" Suffix="" Style="AaBb" /></Policy></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=EnumMember/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Interfaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=LocalConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Locals/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=MethodPropertyEvent/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Other/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Parameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="k" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="m_" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="s_" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateStaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="k" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PublicFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="m_" Suffix="" Style="AaBb" /></Policy></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=StaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="s_" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=TypeParameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /></s:String> |
|||
<s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=TypesAndNamespaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> |
|||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAddAccessorOwnerDeclarationBracesMigration/@EntryIndexedValue">True</s:Boolean> |
|||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean> |
|||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> |
|
|||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> |
|||
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp40</s:String></wpf:ResourceDictionary> |
|
|||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> |
|||
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp40</s:String></wpf:ResourceDictionary> |
|
|||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<s:String x:Key="/Default/Environment/ContinuousTesting/PersistentDataLocation/@EntryValue">C:\Users\Tim\AppData\Local\Temp\JetBrains\ContinuousTesting\7e95cb10-f230-442a-ba1f-a26bdb4193cb</s:String> |
|||
<s:String x:Key="/Default/Environment/ContinuousTesting/ScopeCriterion/@EntryValue">9b0nIQIAAACJbLoh9b0nIQIAAADP4jFoJAAAADwATQBhAHQAZQByAGkAYQBsAEcAcgBhAHAAaABQAHIAbwBqAGUAYwB0AC4AQwBTAGgAYQByAHAALgBFAGQAaQB0AG8AcgA+AC0AAABDADoAXABjAG8AZABlAFwATQBhAHQAZQByAGkAYQBsAEcAcgBhAHAAaABHAGkAdABcAE0AYQB0AGUAcgBpAGEAbABHAHIAYQBwAGgAUAByAG8AagBlAGMAdAA4rDtD+4tkDSUAAABVAG4AaQB0AHkARQBkAGkAdABvAHIALgBHAHIAYQBwAGgAaQBuAGcALgBJAG4AdABlAGcAcgBhAHQAaQBvAG4AVABlAHMAdABzAA==</s:String> |
|||
<s:String x:Key="/Default/Environment/ContinuousTesting/SnapshotLocation/@EntryValue">C:\Users\tim\AppData\Local\Temp\ssm.Metecyz.tmp</s:String> |
|||
<s:String x:Key="/Default/Environment/ContinuousTesting/Strategy/@EntryValue">RunTests</s:String> |
|||
<s:String x:Key="/Default/Environment/ContinuousTesting/TriggerMode/@EntryValue">OnBuild</s:String></wpf:ResourceDictionary> |
撰写
预览
正在加载...
取消
保存
Reference in new issue