2个版本
0.2.1 | 2020年4月16日 |
---|---|
0.2.0 | 2020年4月10日 |
#893 在 图形API 中
每月 24次下载
41KB
577 代码行
烛台 - 窗口系统
亲爱的读者!如果您想要快速搭建一个具有一个或多个窗口的应用程序,并且完全使用Rust编写,那么这个包就是为您准备的!
这个包的设计初衷是与其他包(主要是luminance或candelabre-widgets)一起使用。目标是避免围绕glutin编写样板代码,而是让您可以玩转事件循环。只需包含一个 CandlSurface
和您需要的特质,您就可以开始了!使用OpenGL?更高级的nanovg/nvg?想要探索其他东西?现在您不需要使用sdl或glfw,也不需要深入glutin的内部。
免责声明
以下几点需要注意。
首先,这个项目最初是为了在旧计算机上创建应用程序而编写的,不支持vulkan,并且是跨平台的,所以它使用OpenGL,因为它是唯一能够实现完全跨平台和旧计算机兼容的途径。所以,不会提供vulkan支持,因为这并不是这个项目的目的。
其次,主要目标是处理窗口和小部件,而不是所有内容。事件循环完全由开发者自行决定,因为我相信正确处理一个事物比处理所有事物更好。所以,烛台窗口化只负责窗口处理,而不是整个应用程序。
最后,这个项目还没有结束,还有很多改进在路上。即使它已经足够稳定可以开始构建真实的应用程序(它已经完成了),这个包也会继续发展,主要关注状态部分。
积极开发中
在创建这个库的过程中,产生了一些关于如何改进的想法。当前版本已经稳定,但有一个方面我想深入研究。未来的发展将专注于 CandlSurface
和 CandlManager
的内部数据容量。您不需要这些功能来使用这个库,只需记住我在努力改进它们。
CandlSurface
《CandlSurface》是本库中的第一个核心元素。它允许创建具有特定参数的窗口。给它一个模式(窗口或全屏),可选的大小和光标模式(可见或隐藏),然后我们就可以开始了!
请查看candelabre 示例以获取更多关于如何使用它的详细信息。
《CandlManager》
当您需要为您的应用程序创建多个窗口时,您需要多个OpenGL上下文,但管理它们既繁琐又容易出错。为了简化这项任务,`CandlManager
`使得在不同OpenGL上下文之间切换变得简单。
您可以在candelabre 示例中找到一个`CandlManager
`的示例。
注意:由于某些内部检查,您不能创建一个窗口并在之后将其添加到管理器中。您必须选择是否要进行多窗口操作,但请放心,从一个转换到另一个非常简单,如果仍然太不明确,请提出一个问题 ;-)。
依赖关系
~3–12MB
~140K SLoC