17 个版本 (11 个重大变更)
0.12.1 | 2024 年 3 月 2 日 |
---|---|
0.11.0 | 2023 年 2 月 21 日 |
0.10.1 | 2021 年 2 月 10 日 |
0.10.0 | 2020 年 12 月 17 日 |
0.1.0 | 2017 年 10 月 12 日 |
#10 in 渲染
4,233 每月下载次数
用于 4 crates
94KB
1.5K SLoC
renderdoc-rs
Rust 绑定到 RenderDoc,一个流行的图形调试器。
RenderDoc 是一个免费且开源的实时图形调试器,提供快速简单的帧捕获和任何使用 Vulkan、Direct3D 11、Direct3D 12、OpenGL 和 OpenGL ES 的应用程序的详细检查。
这些绑定要求在目标机器上安装 RenderDoc,且 renderdoc.dll
或 librenderdoc.so
应该在您的 $PATH
中可见。
有关如何使用此 API 将您的游戏或渲染器与 RenderDoc 性能分析器集成的更多详细信息,请参阅 应用程序 API 文档。
示例
use renderdoc::{RenderDoc, V100, V110};
fn main() {
let mut rd: RenderDoc<V110> = RenderDoc::new().expect("Unable to connect");
let (major, minor, patch) = rd.get_api_version();
assert_eq!(major, 1u32);
assert!(minor >= 1u32);
// When a certain key is pressed, trigger a single-frame capture like this.
rd.trigger_capture();
// If you specify version `V110` or newer, you can trigger a multi-frame
// capture like this.
rd.trigger_multi_frame_capture(3);
// Query the details of an existing capture like this.
match rd.get_capture(0) {
Some((path, capture_time)) => println!("ID: 0, Path: {}, Captured: {:?}", path, capture_time),
None => println!("No capture found with ID of 0!"),
}
// Downgrade your effective API version at run-time like this.
let mut rd: RenderDoc<V100> = rd.into();
// Now this line will no longer compile!
// rd.trigger_multi_frame_capture(3);
}
示例代码可在 examples
目录中找到。
许可证
renderdoc-rs
是免费且开源软件,根据您选择的 MIT 或 Apache 2.0 许可证进行分发。
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在作品中的任何贡献都应如上双许可,没有额外的条款或条件。
依赖关系
~0.2–14MB
~116K SLoC