浏览代码

Switch blackboard layout modifiers to default modifiers

/main
Jens Holm 6 年前
当前提交
19a741e4
共有 7 个文件被更改,包括 63 次插入34 次删除
  1. 4
      com.unity.shadergraph/Editor/Drawing/Blackboard/Blackboard.cs
  2. 32
      com.unity.shadergraph/Editor/Drawing/Blackboard/BlackboardProvider.cs
  3. 14
      com.unity.shadergraph/Editor/Drawing/Manipulators/ResizeBorderFrame.cs
  4. 21
      com.unity.shadergraph/Editor/Drawing/Manipulators/ResizeSideHandle.cs
  5. 23
      com.unity.shadergraph/Editor/Drawing/Views/GraphEditorView.cs
  6. 1
      com.unity.shadergraph/Editor/Resources/Styles/Blackboard.uss
  7. 2
      com.unity.shadergraph/Editor/Resources/Styles/GraphEditorView.uss

4
com.unity.shadergraph/Editor/Drawing/Blackboard/Blackboard.cs


ClearClassList();
AddToClassList("sgblackboard");
// this.AddManipulator(new Dragger { clampToParentEdges = true });
this.AddManipulator(new Dragger { clampToParentEdges = true });
// shadow.Add(new Resizer());
shadow.Add(new Resizer());
}
}
}

32
com.unity.shadergraph/Editor/Drawing/Blackboard/BlackboardProvider.cs


readonly Texture2D m_ExposedIcon;
readonly Dictionary<Guid, BlackboardRow> m_PropertyRows;
readonly BlackboardSection m_Section;
WindowDraggable m_WindowDraggable;
ResizeBorderFrame m_ResizeBorderFrame;
//WindowDraggable m_WindowDraggable;
//ResizeBorderFrame m_ResizeBorderFrame;
public Action onDragFinished
{
get { return m_WindowDraggable.OnDragFinished; }
set { m_WindowDraggable.OnDragFinished = value; }
}
//public Action onDragFinished
//{
// get { return m_WindowDraggable.OnDragFinished; }
// set { m_WindowDraggable.OnDragFinished = value; }
//}
public Action onResizeFinished
{
get { return m_ResizeBorderFrame.OnResizeFinished; }
set { m_ResizeBorderFrame.OnResizeFinished = value; }
}
//public Action onResizeFinished
//{
// get { return m_ResizeBorderFrame.OnResizeFinished; }
// set { m_ResizeBorderFrame.OnResizeFinished = value; }
//}
public BlackboardProvider(string assetName, AbstractMaterialGraph graph)
{

moveItemRequested = MoveItemRequested
};
m_WindowDraggable = new WindowDraggable(blackboard.shadow.Children().First().Q("header"));
blackboard.AddManipulator(m_WindowDraggable);
// m_WindowDraggable = new WindowDraggable(blackboard.shadow.Children().First().Q("header"));
// blackboard.AddManipulator(m_WindowDraggable);
m_ResizeBorderFrame = new ResizeBorderFrame(blackboard) { name = "resizeBorderFrame" };
blackboard.shadow.Add(m_ResizeBorderFrame);
// m_ResizeBorderFrame = new ResizeBorderFrame(blackboard) { name = "resizeBorderFrame" };
// blackboard.shadow.Add(m_ResizeBorderFrame);
m_Section = new BlackboardSection { headerVisible = false };
foreach (var property in graph.properties)

14
com.unity.shadergraph/Editor/Drawing/Manipulators/ResizeBorderFrame.cs


m_ResizeSideHandles = new List<ResizeSideHandle>();
// Add resize handles along the border
m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.TopLeft));
m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.Top));
m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.TopRight));
m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.Right));
// m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.TopLeft));
// m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.Top));
// m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.TopRight));
// m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.Right));
m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.Bottom));
m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.BottomLeft));
m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.Left));
// m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.Bottom));
// m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.BottomLeft));
// m_ResizeSideHandles.Add(new ResizeSideHandle(target, container, ResizeHandleAnchor.Left));
foreach (ResizeSideHandle resizeHandle in m_ResizeSideHandles)
{

21
com.unity.shadergraph/Editor/Drawing/Manipulators/ResizeSideHandle.cs


Rect m_ResizeBeginLayout;
Vector2 m_ResizeBeginMousePosition;
private GUIStyle m_StyleWidget;
private GUIStyle m_StyleLabel;
private Texture image { get; set; }
public ResizeSideHandle(VisualElement resizeTarget, VisualElement container, ResizeHandleAnchor anchor)
{
m_WindowDockingLayout = new WindowDockingLayout();

m_WindowDockingLayout.CalculateDockingCornerAndOffset(m_Container.layout, m_Container.parent.layout);
m_WindowDockingLayout.ApplyPosition(m_Container);
}
public override void DoRepaint()
{
if (m_StyleWidget == null)
{
m_StyleWidget = new GUIStyle("WindowBottomResize") { fixedHeight = 0 };
image = m_StyleWidget.normal.background;
}
if (image == null)
{
Debug.LogWarning("null texture passed to GUI.DrawTexture");
return;
}
GUI.DrawTexture(contentRect, image, ScaleMode.ScaleAndCrop, true, 0, GUI.color, 0, 0);
}
}
}

23
com.unity.shadergraph/Editor/Drawing/Views/GraphEditorView.cs


using UnityEditor.ShaderGraph.Drawing.Inspector;
using UnityEngine.Experimental.UIElements.StyleEnums;
using UnityEngine.Experimental.UIElements.StyleSheets;
using UnityEngine.Rendering;
using Edge = UnityEditor.Experimental.UIElements.GraphView.Edge;
using Object = UnityEngine.Object;
#if UNITY_2018_1

m_BlackboardProvider = new BlackboardProvider(assetName, graph);
m_GraphView.Add(m_BlackboardProvider.blackboard);
m_BlackboardProvider.blackboard.style.positionType = StyleValue<PositionType>.Create(PositionType.Absolute);
m_BlackboardProvider.blackboard.style.positionLeft = StyleValue<float>.Create(10f);
m_BlackboardProvider.blackboard.style.positionTop = StyleValue<float>.Create(10f);
Rect blackboardLayout = m_BlackboardProvider.blackboard.layout;
blackboardLayout.x = 10f;
blackboardLayout.y = 10f;
m_BlackboardProvider.blackboard.layout = blackboardLayout;
m_MasterPreviewView = new MasterPreviewView(assetName, previewManager, graph) { name = "masterPreview" };

m_BlackboardProvider.onDragFinished += UpdateSerializedWindowLayout;
m_BlackboardProvider.onResizeFinished += UpdateSerializedWindowLayout;
//m_BlackboardProvider.onDragFinished += UpdateSerializedWindowLayout;
//m_BlackboardProvider.onResizeFinished += UpdateSerializedWindowLayout;
masterPreviewViewDraggable.OnDragFinished += UpdateSerializedWindowLayout;
m_MasterPreviewView.previewResizeBorderFrame.OnResizeFinished += UpdateSerializedWindowLayout;

}
}
void StoreBlackboardLayoutOnGeometryChanged(GeometryChangedEvent evt)
{
UpdateSerializedWindowLayout();
}
void ApplySerializewindowLayouts(GeometryChangedEvent evt)
{
UnregisterCallback<GeometryChangedEvent>(ApplySerializewindowLayouts);

m_MasterPreviewView.previewTextureView.style.height = StyleValue<float>.Create(m_FloatingWindowsLayout.masterPreviewSize.y);
// Restore blackboard layout
m_FloatingWindowsLayout.blackboardLayout.ApplyPosition(m_BlackboardProvider.blackboard);
m_FloatingWindowsLayout.blackboardLayout.ApplySize(m_BlackboardProvider.blackboard);
m_BlackboardProvider.blackboard.layout = m_FloatingWindowsLayout.blackboardLayout.GetLayout(this.layout);
previewManager.ResizeMasterPreview(m_FloatingWindowsLayout.masterPreviewSize);
}

}
// After the layout is restored from the previous session, start tracking layout changes in the blackboard.
m_BlackboardProvider.blackboard.RegisterCallback<GeometryChangedEvent>(StoreBlackboardLayoutOnGeometryChanged);
}
void UpdateSerializedWindowLayout()

1
com.unity.shadergraph/Editor/Resources/Styles/Blackboard.uss


.sgblackboard {
position-type:absolute;
border-left-width: 1;
border-top-width: 1;
border-right-width: 1;

2
com.unity.shadergraph/Editor/Resources/Styles/GraphEditorView.uss


#resizeBorderFrame > .resize.diagonal {
width: 10;
height: 10;
height: 6;
}
#resizeBorderFrame > .resize.diagonal.top-left {

正在加载...
取消
保存