#opengl-context #opengl #windowing #cross-platform #glfw #provider #glutin

servo-glutin

跨平台OpenGL上下文提供者

55个版本 (11个重大更改)

使用旧的Rust 2015

0.15.0 2018年2月28日
0.14.0 2018年1月27日
0.13.3 2017年12月5日
0.13.2 2017年11月29日
0.4.3 2015年11月30日

#531图形API

Download history 1/week @ 2024-03-09 105/week @ 2024-03-30 1/week @ 2024-04-06

每月173次 下载
skia 中使用

Apache-2.0

630KB
9K SLoC

glutin - OpenGL,工具和输入

![Gitter](https://badges.gitter.im/Join Chat.svg)

Docs.rs

纯Rust中的GLFW替代品。

Build Status Build status

[dependencies]
glutin = "*"

文档

试试看!

git clone https://github.com/tomaka/glutin
cd glutin
cargo run --example window

用法

Glutin是一个OpenGL上下文创建库,不直接为你提供OpenGL绑定。

[dependencies]
gl = "*"
libc = "*"
extern crate gl;
extern crate glutin;
extern crate libc;

fn main() {
    let window = glutin::Window::new().unwrap();

    unsafe { window.make_current() };

    let gl_ = match api_type {
        gl::GlType::Gl => unsafe { gl::GlFns::load_with(|s| Self::get_proc_address(s) as *const _) },
        gl::GlType::Gles => unsafe { gl::GlesFns::load_with(|s| Self::get_proc_address(s) as *const _) },
    };

    gl_.clear_color(0.0, 1.0, 0.0, 1.0);

    for event in window.wait_events() {
        gl_.clear(gl::COLOR_BUFFER_BIT);
        window.swap_buffers();

        match event {
            glutin::Event::Closed => break,
            _ => ()
        }
    }
}

请注意,glutin旨在成为你的渲染基础设施中的低级砖块。你被鼓励在glutin和你的应用程序之间编写另一层抽象层。

平台特定说明

Android

  • 为了编译Android示例,初始化子模块,转到 deps/apk-builder/apk-builder 并运行 cargo build,然后回到 glutin 并调用 ANDROID_HOME=/path/to/sdk NDK_HOME=/path/to/ndk NDK_STANDALONE=/path/to/standalone cargo test --no-run --target=arm-linux-androideabi

依赖项

~0–3MB
~19K SLoC