基于 .NET 的跨平台桌面应用/游戏引擎基础框架,使用 C# 编写。提供了一套构建桌面应用程序的核心基础设施,包括应用生命周期管理、UI 线程调度、窗口管理、输入处理,以及基于 SkiaSharp 的 2D 渲染(支持 OpenGL 和 Vulkan 后端)。

| 项目 |
说明 |
| Shimakaze.Foundation.Runtime.Threading |
UI 线程调度器,提供类似 WPF Dispatcher 的调度机制,支持多优先级任务队列和 async/await |
| Shimakaze.Foundation.Runtime |
应用生命周期管理,提供 Application / ApplicationBuilder,内置 DI 容器支持 |
| 项目 |
说明 |
| Shimakaze.Foundation.Windowing |
窗口抽象层,定义 PlatformWindow、输入事件、IWindowOptionsProvider 等核心类型 |
| Shimakaze.Foundation.Windowing.GLFW |
GLFW 窗口后端实现 |
| Shimakaze.Foundation.Windowing.SDL |
SDL 窗口后端实现 |
| 项目 |
说明 |
| Shimakaze.Foundation.Rendering |
基于 SkiaSharp 的 2D 渲染器抽象 |
| Shimakaze.Foundation.Windowing.Rendering |
窗口与渲染的桥接层,定义渲染器 Provider 模式 |
| Shimakaze.Foundation.Windowing.Rendering.OpenGL |
OpenGL 渲染后端,通过 SkiaSharp 使用 OpenGL 上下文渲染 |
| Shimakaze.Foundation.Windowing.Rendering.Vulkan |
Vulkan 渲染后端,管理 Swapchain、Command Buffer、同步原语,通过 SkiaSharp 使用 Vulkan 渲染 |
| 项目 |
说明 |
| Shimakaze.Foundation.Input.Cursors |
光标管理 |
// 构建应用
var app = ApplicationBuilder.Create()
.AddApplicationLifecycle<MyLifecycle>()
.Build();
// 运行
await app.RunAsync();
更多示例请参考 example/ColorScreen 项目。
- 跨平台 — 基于 .NET 10 和 Silk.NET,支持 Windows、Linux、macOS
- 多窗口后端 — 同时支持 GLFW 和 SDL 两种窗口后端,可按需切换
- 多渲染后端 — 支持 OpenGL 和 Vulkan 两种渲染后端
- UI 线程调度 — 类似 WPF Dispatcher 的调度模型,支持
async/await
- SkiaSharp 2D 渲染 — 使用 GPU 加速的 SkiaSharp 进行 2D 图形渲染
- 依赖注入 — 内置
Microsoft.Extensions.DependencyInjection 支持
- MIT 协议 — 完全开源,自由使用
本项目采用 MIT 许可证。