#opengl #gl #gtk #libepoxy

环氧树脂

libepoxy的Rust绑定,一个OpenGL函数指针管理器

5个版本

使用旧的Rust 2015

0.1.0 2018年10月11日
0.0.4 2018年4月2日
0.0.3 2017年9月30日
0.0.2 2015年11月5日
0.0.1 2015年11月3日

#599 in 图形API

Download history 218/week @ 2024-02-27 121/week @ 2024-03-05 62/week @ 2024-03-12 111/week @ 2024-03-19 81/week @ 2024-03-26 188/week @ 2024-04-02 60/week @ 2024-04-09 113/week @ 2024-04-16 102/week @ 2024-04-23 74/week @ 2024-04-30 83/week @ 2024-05-07 109/week @ 2024-05-14 93/week @ 2024-05-21 206/week @ 2024-05-28 112/week @ 2024-06-04 84/week @ 2024-06-11

506 每月下载量
gfx-gtk 中使用

Apache-2.0

18KB
346

epoxy-rs

Rust绑定用于 libepoxy,一个OpenGL函数指针管理器。

使用针对 gl_generator 包的定制生成器生成的绑定。

为什么我要用这个而不是 gl 包?

你可能不需要,gl 执行相同类型的函数指针管理,但需要 get_proc_address 或类似的功能来定位所需的函数指针。当使用像 glutin 这样的库进行窗口管理时,这不是问题,但在与 Gdk GdkGLContext 交互时是问题。使用 glepoxy 默认生成器一起使用会导致问题,因为这两个库都尝试懒加载符号并缓存函数指针值。

此包主要用于使用OpenGL函数与 gtk 包一起绘制到 GtkGLArea。Gdk在后台使用环氧树脂为您设置OpenGL上下文,但未提供在初始化后轻松定位适当OpenGL函数的简单方法。此包试图解决这个问题。

使用绑定

epoxy 目前需要一个类似 gl 包的加载函数,除了它定位的是等效的 libepoxy 符号,防止上述冲突。像以下这样的使用 shared_library 包的代码在大多数情况下应该工作

epoxy::load_with(|s| {
    unsafe {
        match DynamicLibrary::open(None).unwrap().symbol(s) {
            Ok(v) => v,
            Err(_) => ptr::null(),
        }
    }
});
gl::load_with(epoxy::get_proc_addr);

库的将来版本可能默认使用此实现。

我能否使用 glium 绘制到 GtkGLArea

希望很快。

依赖项

~200KB