diff --git a/SFMLRenderer/ISFMLRenderer.cs b/SFMLRenderer/ISFMLRenderer.cs
index 0a8df47..fe27115 100644
--- a/SFMLRenderer/ISFMLRenderer.cs
+++ b/SFMLRenderer/ISFMLRenderer.cs
@@ -9,15 +9,19 @@ using System.Threading.Tasks;
namespace SFMLRenderer
{
+ ///
+ /// 定义了 SFML 渲染器的基本功能和事件, 基本上是对 的抽象
+ /// 实现示例可以见
+ ///
public interface ISFMLRenderer
{
///
- /// 发生在资源首次创建完成后
+ /// 发生在资源首次创建完成后, 该事件发生之后渲染器才是可用的, 操作才会生效
///
public event EventHandler? RendererCreated;
///
- /// 发生在资源即将不可用之前
+ /// 发生在资源即将不可用之前, 该事件发生之后对渲染器的操作将被忽略
///
public event EventHandler? RendererDisposing;
@@ -62,72 +66,72 @@ namespace SFMLRenderer
public uint MaxFps { get; set; }
///
- /// 垂直同步
+ /// 垂直同步,
///
public bool VerticalSync { get; set; }
///
- ///
+ ///
///
- public void SetActive(bool active);
+ public bool SetActive(bool active);
///
- ///
+ ///
///
public View GetView();
///
- ///
+ ///
///
public void SetView(View view);
///
- ///
+ ///
///
public Vector2f MapPixelToCoords(Vector2i point);
///
- ///
+ ///
///
public Vector2i MapCoordsToPixel(Vector2f point);
///
- ///
+ ///
///
public void Clear();
///
- ///
+ ///
///
public void Clear(Color color);
///
- ///
+ ///
///
public void Draw(Drawable drawable);
///
- ///
+ ///
///
public void Draw(Drawable drawable, RenderStates states);
///
- ///
+ ///
///
public void Draw(Vertex[] vertices, PrimitiveType type);
///
- ///
+ ///
///
public void Draw(Vertex[] vertices, PrimitiveType type, RenderStates states);
///
- ///
+ ///
///
public void Draw(Vertex[] vertices, uint start, uint count, PrimitiveType type);
///
- ///
+ ///
///
public void Display();
}
diff --git a/SFMLRenderer/README.md b/SFMLRenderer/README.md
index 842c0f2..77db931 100644
--- a/SFMLRenderer/README.md
+++ b/SFMLRenderer/README.md
@@ -1,3 +1,21 @@
# SFMLRenderer
这个库封装了一个用于 WPF 的 SFML 渲染控件.
+
+```mermaid
+classDiagram
+
+namespace SFMLRenderer {
+ class ISFMLRenderer {
+ <>
+ }
+
+ class SFMLHwndHost
+
+ class SFMLRenderPanel
+}
+
+ISFMLRenderer <|.. SFMLRenderPanel
+SFMLHwndHost <.. SFMLRenderPanel
+
+```
diff --git a/SFMLRenderer/SFMLHwndHost.cs b/SFMLRenderer/SFMLHwndHost.cs
index 7068b1e..975968b 100644
--- a/SFMLRenderer/SFMLHwndHost.cs
+++ b/SFMLRenderer/SFMLHwndHost.cs
@@ -12,14 +12,27 @@ using System.Windows.Media;
namespace SFMLRenderer
{
+ ///
+ /// 原生窗口控件, 不应直接使用该类, 而是使用 或者二次封装
+ ///
public class SFMLHwndHost : HwndHost
{
private HwndSource? _hwndSource;
private SFML.Graphics.RenderWindow? _renderWindow;
+ ///
+ /// 内部的 SFML 窗口对象
+ ///
public SFML.Graphics.RenderWindow? RenderWindow => _renderWindow;
+ ///
+ /// 窗口建立事件
+ ///
public event EventHandler? RenderWindowBuilded;
+
+ ///
+ /// 窗口销毁事件
+ ///
public event EventHandler? RenderWindowDestroying;
protected override HandleRef BuildWindowCore(HandleRef hwndParent)
diff --git a/SFMLRenderer/SFMLRenderPanel.xaml.cs b/SFMLRenderer/SFMLRenderPanel.xaml.cs
index 1edc5e1..054c737 100644
--- a/SFMLRenderer/SFMLRenderPanel.xaml.cs
+++ b/SFMLRenderer/SFMLRenderPanel.xaml.cs
@@ -229,7 +229,7 @@ namespace SFMLRenderer
public Vector2f MapPixelToCoords(Vector2i point) => RenderWindow?.MapPixelToCoords(point) ?? default;
- public void SetActive(bool active) => RenderWindow?.SetActive(active);
+ public bool SetActive(bool active) => RenderWindow?.SetActive(active) ?? false;
public void SetView(View view) => RenderWindow?.SetView(view);