#renderer #imgui #glow #opengl #render #upstream #srgb

imgui-glow-renderer

imgui crate 的 glow 渲染器

8 个版本 (4 个重大更新)

0.12.0 2024 年 5 月 5 日
0.11.0 2023 年 4 月 5 日
0.10.0 2023 年 1 月 16 日
0.9.0 2022 年 12 月 1 日
0.8.0 2021 年 9 月 17 日

#115 in 渲染

Download history 819/week @ 2024-05-04 792/week @ 2024-05-11 888/week @ 2024-05-18 805/week @ 2024-05-25 824/week @ 2024-06-01 763/week @ 2024-06-08 473/week @ 2024-06-15 258/week @ 2024-06-22 157/week @ 2024-06-29 247/week @ 2024-07-06 318/week @ 2024-07-13 247/week @ 2024-07-20 268/week @ 2024-07-27 261/week @ 2024-08-03 202/week @ 2024-08-10 220/week @ 2024-08-17

每月 986 次下载
用于 imgui-sdl2-support

MIT/Apache

700KB
14K SLoC

使用 glow 库为 OpenGL 实现的 [imgui](imgui-rs)[imgui] 渲染器。

该渲染器受到 上游示例 的极大影响。

基本用法

源代码中提供了几个 示例

简而言之,创建一个 AutoRenderer(用于基本用法)或 Renderer(用于稍微可定制的操作),然后使用来自 imgui 的绘图数据调用 render(...) 方法。

OpenGL (ES) 版本

此渲染器预期与 OpenGL 版本 3.3 及以上以及 OpenGL ES 版本 3.0 或以上兼容。这应该涵盖了大多数甚至相当老旧的硬件。对于发现与这些 OpenGL 版本不兼容的问题,请提交问题报告,欢迎提交拉取请求以扩展对更早版本的支持。

范围

请将此视为一个示例渲染器。它旨在满足简单应用作为imgui-rs最终渲染步骤的需求。如果你的应用有更具体的需求,最好编写自己的渲染器,在这种情况下,这可以作为一个有用的起点。此渲染器也不是万无一失的(主要由于OpenGL状态的全球性质)。例如,一些“内部”函数被标记为 pub 以允许用户有更精细的控制,但代价是可能允许潜在的渲染错误。

sRGB

当将颜色输出到屏幕时,颜色需要从线性颜色空间转换为匹配显示器的非线性空间(例如sRGB)。当使用 AutoRenderer 时,此库将作为着色器中的一个步骤将颜色转换为sRGB。初始化 Renderer 时,你可以在调用 Renderer::initialize 时选择是否将此步骤包含在着色器中。

此库还假设当纹理上传到OpenGL时,其内部格式已经正确设置。也就是说,假设你的纹理是sRGB(如果你不知道,它可能就是)则 internal_formatSRGB* 值之一。

依赖项

~14–20MB
~302K SLoC