All Projects → ebkalderon → renderdoc-rs

ebkalderon / renderdoc-rs

Licence: other
RenderDoc application bindings for Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to renderdoc-rs

render-doctor
渲染医生,基于 RenderDoc 的渲染分析工具,以 html 形式展现方便阅读和分享。
Stars: ✭ 46 (+64.29%)
Mutual labels:  vulkan, directx, renderdoc
Renderdoc
RenderDoc is a stand-alone graphics debugging tool.
Stars: ✭ 5,969 (+21217.86%)
Mutual labels:  vulkan, directx, renderdoc
virtualGizmo3D
Virtual GIZMO - 3D object manipulator / orientator, via mouse, with pan and dolly/zoom features
Stars: ✭ 36 (+28.57%)
Mutual labels:  vulkan, directx
wgpu-mc
Rust-based replacement for the default Minecraft renderer
Stars: ✭ 254 (+807.14%)
Mutual labels:  vulkan, directx
harfang3d
HARFANG 3D source code public repository
Stars: ✭ 173 (+517.86%)
Mutual labels:  vulkan, directx
spirv cross
Safe Rust wrapper around SPIRV-Cross
Stars: ✭ 75 (+167.86%)
Mutual labels:  vulkan, directx
RavEngine
A fast, easy to use C++20 3D game library for modern computers
Stars: ✭ 122 (+335.71%)
Mutual labels:  vulkan, directx
LowLevelAPIDemo
Evergine Low-Level API samples.
Stars: ✭ 12 (-57.14%)
Mutual labels:  vulkan, directx
The Forge
The Forge Cross-Platform Rendering Framework PC Windows, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2
Stars: ✭ 2,710 (+9578.57%)
Mutual labels:  vulkan, directx
winsafe
Windows API and GUI in safe, idiomatic Rust.
Stars: ✭ 110 (+292.86%)
Mutual labels:  directx, ffi
bgfx-python
Python 3.7+ wrapper for the BGFX library. 🐍
Stars: ✭ 99 (+253.57%)
Mutual labels:  vulkan, directx
CrossWindow-Graphics
A header only library to simplify creating 🌋 Vulkan / ⚪ OpenGL / 🌐 WebGL / ❎DirectX / 🤖 Metal data structures with CrossWindow.
Stars: ✭ 48 (+71.43%)
Mutual labels:  vulkan, directx
rsmpeg
A Rust crate that exposes FFmpeg's power as much as possible.
Stars: ✭ 390 (+1292.86%)
Mutual labels:  ffi, bindings
game overlay sdk
Library to write messages on top of game window
Stars: ✭ 57 (+103.57%)
Mutual labels:  vulkan, directx
bgfx-header-extension-library
Header-only effects and helper library for Bgfx to help you hit the ground running. Includes a bunch of post processing filters to complete common graphical tasks
Stars: ✭ 35 (+25%)
Mutual labels:  vulkan, directx
Nimgl
NimGL is a Nim library that offers bindings for popular libraries used in computer graphics
Stars: ✭ 218 (+678.57%)
Mutual labels:  vulkan, bindings
CrossWindow-Demos
🥪 Examples of how to use CrossWindow for things like rendering graphics, listening to events, etc.
Stars: ✭ 48 (+71.43%)
Mutual labels:  vulkan, directx
Diligentsamples
Sample projects demonstrating the usage of Diligent Engine
Stars: ✭ 138 (+392.86%)
Mutual labels:  vulkan, directx
Imguizmo.quat
ImGui GIZMO widget - 3D object manipulator / orientator
Stars: ✭ 187 (+567.86%)
Mutual labels:  vulkan, directx
directx-d
[DISCONTINUED] DirectX bindings for D
Stars: ✭ 19 (-32.14%)
Mutual labels:  directx, bindings

renderdoc-rs

Build Status Crates.io Documentation

Rust bindings to RenderDoc, a popular graphics debugger.

RenderDoc is a free and open source graphics debugging tool. RenderDoc allows game developers to take frame captures of their applications, replay them, examine the graphics pipeline state, and potentially identify nasty graphics bugs.

These bindings require that RenderDoc be installed on the target machine, with either renderdoc.dll or librenderdoc.so visible from your $PATH.

For more details on how to use this API to integrate your game or renderer with the RenderDoc profiler, consult the in-application API documentation.

Example

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);
}

Working examples are available in the examples directory.

License

renderdoc-rs is free and open source software distributed under the terms of either the MIT or the Apache 2.0 license, at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].