增加显示包围盒调试
This commit is contained in:
@@ -380,6 +380,17 @@ namespace SpineViewer.Spine.Implementations.Spine
|
||||
states.Shader = null;
|
||||
target.Draw(vertexArray, states);
|
||||
//clipping.ClipEnd();
|
||||
|
||||
// 包围盒
|
||||
if (IsDebug && IsSelected && DebugBounds)
|
||||
{
|
||||
var bounds = Bounds;
|
||||
boundsVertices[0] = boundsVertices[4] = new(new(bounds.Left, bounds.Top), BoundsColor);
|
||||
boundsVertices[1] = new(new(bounds.Right, bounds.Top), BoundsColor);
|
||||
boundsVertices[2] = new(new(bounds.Right, bounds.Bottom), BoundsColor);
|
||||
boundsVertices[3] = new(new(bounds.Left, bounds.Bottom), BoundsColor);
|
||||
target.Draw(boundsVertices);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -336,6 +336,17 @@ namespace SpineViewer.Spine.Implementations.Spine
|
||||
states.Shader = null;
|
||||
target.Draw(vertexArray, states);
|
||||
clipping.ClipEnd();
|
||||
|
||||
// 包围盒
|
||||
if (IsDebug && IsSelected && DebugBounds)
|
||||
{
|
||||
var bounds = Bounds;
|
||||
boundsVertices[0] = boundsVertices[4] = new(new(bounds.Left, bounds.Top), BoundsColor);
|
||||
boundsVertices[1] = new(new(bounds.Right, bounds.Top), BoundsColor);
|
||||
boundsVertices[2] = new(new(bounds.Right, bounds.Bottom), BoundsColor);
|
||||
boundsVertices[3] = new(new(bounds.Left, bounds.Bottom), BoundsColor);
|
||||
target.Draw(boundsVertices);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -344,6 +344,17 @@ namespace SpineViewer.Spine.Implementations.Spine
|
||||
states.Shader = null;
|
||||
target.Draw(vertexArray, states);
|
||||
clipping.ClipEnd();
|
||||
|
||||
// 包围盒
|
||||
if (IsDebug && IsSelected && DebugBounds)
|
||||
{
|
||||
var bounds = Bounds;
|
||||
boundsVertices[0] = boundsVertices[4] = new(new(bounds.Left, bounds.Top), BoundsColor);
|
||||
boundsVertices[1] = new(new(bounds.Right, bounds.Top), BoundsColor);
|
||||
boundsVertices[2] = new(new(bounds.Right, bounds.Bottom), BoundsColor);
|
||||
boundsVertices[3] = new(new(bounds.Left, bounds.Bottom), BoundsColor);
|
||||
target.Draw(boundsVertices);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -347,6 +347,17 @@ namespace SpineViewer.Spine.Implementations.Spine
|
||||
states.Shader = null;
|
||||
target.Draw(vertexArray, states);
|
||||
clipping.ClipEnd();
|
||||
|
||||
// 包围盒
|
||||
if (IsDebug && IsSelected && DebugBounds)
|
||||
{
|
||||
var bounds = Bounds;
|
||||
boundsVertices[0] = boundsVertices[4] = new(new(bounds.Left, bounds.Top), BoundsColor);
|
||||
boundsVertices[1] = new(new(bounds.Right, bounds.Top), BoundsColor);
|
||||
boundsVertices[2] = new(new(bounds.Right, bounds.Bottom), BoundsColor);
|
||||
boundsVertices[3] = new(new(bounds.Left, bounds.Bottom), BoundsColor);
|
||||
target.Draw(boundsVertices);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -346,6 +346,17 @@ namespace SpineViewer.Spine.Implementations.Spine
|
||||
states.Shader = null;
|
||||
target.Draw(vertexArray, states);
|
||||
clipping.ClipEnd();
|
||||
|
||||
// 包围盒
|
||||
if (IsDebug && IsSelected && DebugBounds)
|
||||
{
|
||||
var bounds = Bounds;
|
||||
boundsVertices[0] = boundsVertices[4] = new(new(bounds.Left, bounds.Top), BoundsColor);
|
||||
boundsVertices[1] = new(new(bounds.Right, bounds.Top), BoundsColor);
|
||||
boundsVertices[2] = new(new(bounds.Right, bounds.Bottom), BoundsColor);
|
||||
boundsVertices[3] = new(new(bounds.Left, bounds.Bottom), BoundsColor);
|
||||
target.Draw(boundsVertices);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -346,6 +346,17 @@ namespace SpineViewer.Spine.Implementations.Spine
|
||||
states.Shader = null;
|
||||
target.Draw(vertexArray, states);
|
||||
clipping.ClipEnd();
|
||||
|
||||
// 包围盒
|
||||
if (IsDebug && IsSelected && DebugBounds)
|
||||
{
|
||||
var bounds = Bounds;
|
||||
boundsVertices[0] = boundsVertices[4] = new(new(bounds.Left, bounds.Top), BoundsColor);
|
||||
boundsVertices[1] = new(new(bounds.Right, bounds.Top), BoundsColor);
|
||||
boundsVertices[2] = new(new(bounds.Right, bounds.Bottom), BoundsColor);
|
||||
boundsVertices[3] = new(new(bounds.Left, bounds.Bottom), BoundsColor);
|
||||
target.Draw(boundsVertices);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -346,6 +346,17 @@ namespace SpineViewer.Spine.Implementations.Spine
|
||||
states.Shader = null;
|
||||
target.Draw(vertexArray, states);
|
||||
clipping.ClipEnd();
|
||||
|
||||
// 包围盒
|
||||
if (IsDebug && IsSelected && DebugBounds)
|
||||
{
|
||||
var bounds = Bounds;
|
||||
boundsVertices[0] = boundsVertices[4] = new(new(bounds.Left, bounds.Top), BoundsColor);
|
||||
boundsVertices[1] = new(new(bounds.Right, bounds.Top), BoundsColor);
|
||||
boundsVertices[2] = new(new(bounds.Right, bounds.Bottom), BoundsColor);
|
||||
boundsVertices[3] = new(new(bounds.Left, bounds.Bottom), BoundsColor);
|
||||
target.Draw(boundsVertices);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -434,16 +434,26 @@ namespace SpineViewer.Spine
|
||||
[Browsable(false)]
|
||||
public bool IsDebug { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 包围盒颜色
|
||||
/// </summary>
|
||||
protected static readonly SFML.Graphics.Color BoundsColor = new(120, 200, 0);
|
||||
|
||||
/// <summary>
|
||||
/// 包围盒顶点数组
|
||||
/// </summary>
|
||||
protected readonly SFML.Graphics.VertexArray boundsVertices = new(SFML.Graphics.PrimitiveType.LineStrip, 5);
|
||||
|
||||
/// <summary>
|
||||
/// 显示包围盒
|
||||
/// </summary>
|
||||
[Browsable(false)]
|
||||
[Category("调试"), DisplayName("显示包围盒")]
|
||||
public bool DebugBounds { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// 显示骨骼
|
||||
/// </summary>
|
||||
[Browsable(false)]
|
||||
[Category("调试"), DisplayName("显示骨骼(TODO)")]
|
||||
public bool DebugBones { get; set; } = false;
|
||||
|
||||
#region SFML.Graphics.Drawable 接口实现
|
||||
@@ -456,10 +466,10 @@ namespace SpineViewer.Spine
|
||||
/// <summary>
|
||||
/// 顶点缓冲区
|
||||
/// </summary>
|
||||
protected SFML.Graphics.VertexArray vertexArray = new(SFML.Graphics.PrimitiveType.Triangles);
|
||||
protected readonly SFML.Graphics.VertexArray vertexArray = new(SFML.Graphics.PrimitiveType.Triangles);
|
||||
|
||||
/// <summary>
|
||||
/// SFML.Graphics.Drawable 接口实现 TODO: 增加调试内容绘制
|
||||
/// SFML.Graphics.Drawable 接口实现
|
||||
/// </summary>
|
||||
public abstract void Draw(SFML.Graphics.RenderTarget target, SFML.Graphics.RenderStates states);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user