11个版本 (7个破坏性更新)
0.8.0 | 2023年6月16日 |
---|---|
0.7.0 | 2023年2月28日 |
0.6.0 | 2021年3月5日 |
0.5.1 | 2020年8月7日 |
0.1.1 | 2019年11月8日 |
#35 in #surface
303 每月下载次数
33KB
633 代码行
surfman表面管理器的线程安全交换链实现。
交换链的作用是在不同上下文之间传递表面,通常在不同的线程中。每个交换链都有一个 生产者 上下文,负责创建和销毁表面,以及多个 消费者 上下文(通常只有一个),它们从交换链中获取表面,并将它们返回以进行回收。
每个交换链都有一个 后缓冲区,即生产者上下文可以绘制的当前表面。每个交换链都有一个 前缓冲区,即生产者上下文完成绘制的最新表面。
生产者在完成绘制并准备好显示表面时可以 交换 这些缓冲区。
消费者可以 获取 前缓冲区,显示它,然后 回收 它。
每个生产者上下文都有一个 附加 的交换链,其后缓冲区是上下文的当前表面。生产者可以更改附加的交换链,将当前未附加的交换链附加到它,并断开当前附加的交换链。
依赖关系
~1–14MB
~156K SLoC