#opengl #gl #graphics #gamedev #top-level

无std gl46

绑定OpenGL 4.6(以及一些扩展)

12个版本

0.2.1 2021年3月8日
0.2.0 2021年2月21日
0.1.3 2020年9月17日
0.1.2 2020年8月9日
0.0.2 2020年7月19日

#934 in 图形API

Download history 91/week @ 2024-01-29 23/week @ 2024-02-05 20/week @ 2024-02-19 23/week @ 2024-02-26 19/week @ 2024-03-04 30/week @ 2024-03-11 22/week @ 2024-03-18 3/week @ 2024-03-25 97/week @ 2024-04-01 13/week @ 2024-04-08 30/week @ 2024-04-15

每月145次下载

Zlib OR Apache-2.0 OR MIT

615KB
6.5K SLoC

License:Zlib min-rust-1.34 crates.io docs.rs

这是一个自动生成的Crate

此Crate是来自phosphorus仓库中某个脚本的手动调整输出。

因此,除顶级Crate文档之外,通常不接受对此Crate的其他PR。相反,您应该修改如何使用phosphorus

gl46

绑定OpenGL 4.6(以及一些扩展)

有关Crate操作的说明,请参阅Crate文档


lib.rs:

使OpenGL 4.6核心API(以及一些扩展)可用。

Crate的接口以“struct”风格的加载器提供。使用适当的“gl_get_proc_address”函数构建一个GlFns,然后调用其方法。

扩展

Cargo功能

  • track_caller:在可能引发panic的任何函数上启用track_caller属性。具体来说,结构加载器的扩展函数可能没有加载,如果在未加载的情况下调用它们,则会引发panic。

gl_get_proc_address

GL通常必须在运行时动态加载。这是通过一个我们称之为“gl_get_proc_address”的函数来完成的。此函数的预期操作非常简单:调用者传递一个指向以null结尾的字符串的指针,该字符串包含一个GL函数的名称,然后gl_get_proc_address返回该函数的指针。

获取适当的gl_get_proc_address函数的方式依赖于平台。

创建GLFns的函数接受一个&dyn Fn(*const u8) -> *const c_void类型的参数。请注意前面的&dyn部分。除了将闭包传递给构造函数(|x| { ... })外,通常您需要使用一个&来将闭包转换为&dyn值。就像这样

use gl46::*;
let gl = unsafe { GlFns::load_from(&|u8_ptr| SDL_GL_GetProcAddress(u8_ptr.cast())).unwrap() };

这听起来可能有点荒谬,但它确实有助于减少重新编译时间,而且只需多写一个&

内联

此crate不使用#[inline]属性。如果您想要完全内联,只需在您的cargo配置文件中启用链接时间优化。

[profile.release]
lto = "thin"

依赖关系