我如何在 Rust 中使用自由类型绑定?
How do I use freetype bindings in Rust?
我一直在从事一个需要与字体交互的相当基础的项目。计划是使用 FreeType by the Servo team. However, I'm having a hard time figuring out how exactly one is to use it. I've new to FreeType, so I'm following their tutorial 的绑定。在这一点上让我感到困惑的是创建句柄。我确实尝试过(诚然可笑)创建库句柄,例如:
use freetype::freetype;
let library: freetype::FT_Library;
不出所料,那是行不通的。我已决定为该项目使用 font_kit
,因为我相当确定这有点超出我的理解范围。但我仍然很想知道如何才能真正做到这一点。
看来你可以使用std::ptr::null_mut
来初始化freetype::freetype::FT_Library
:
fn main() {
let mut lib: freetype::freetype::FT_Library = std::ptr::null_mut();
let result = unsafe {
freetype::freetype::FT_Init_FreeType(&mut lib)
};
println!("Initialization succeed:{}", freetype::succeeded(result));
}
基于example.
我一直在从事一个需要与字体交互的相当基础的项目。计划是使用 FreeType by the Servo team. However, I'm having a hard time figuring out how exactly one is to use it. I've new to FreeType, so I'm following their tutorial 的绑定。在这一点上让我感到困惑的是创建句柄。我确实尝试过(诚然可笑)创建库句柄,例如:
use freetype::freetype;
let library: freetype::FT_Library;
不出所料,那是行不通的。我已决定为该项目使用 font_kit
,因为我相当确定这有点超出我的理解范围。但我仍然很想知道如何才能真正做到这一点。
看来你可以使用std::ptr::null_mut
来初始化freetype::freetype::FT_Library
:
fn main() {
let mut lib: freetype::freetype::FT_Library = std::ptr::null_mut();
let result = unsafe {
freetype::freetype::FT_Init_FreeType(&mut lib)
};
println!("Initialization succeed:{}", freetype::succeeded(result));
}
基于example.