30个重大版本更新
使用旧的Rust 2015
0.33.0 | 2023年11月14日 |
---|---|
0.31.0 | 2022年11月16日 |
0.29.0 | 2021年11月28日 |
0.28.0 | 2021年3月15日 |
0.3.1 | 2015年7月20日 |
#1014 in 图形API
用于 3 crate
23KB
259 代码行
gfx_debug_draw
用于在3D空间中批量渲染线条和文本的库,使用gfx-rs。
使用方法
// Initializing...
// Create gfx_text::Renderer to be used by the DebugRenderer
let text_renderer = {
let factory = piston_window.device.borrow_mut().spawn_factory(); // gfx::Factory
gfx_text::new(factory).unwrap() // can optionally configure text renderer here (font, color)
};
let mut debug_renderer = DebugRenderer::new(
piston_window.device.borrow_mut().spawn_factory(), // gfx::Factory
text_renderer,
64, // Initial size of vertex buffers
).ok().unwrap();
...
// In render loop...
// Draw red line from origin along x-axis
debug_renderer.draw_line(
[0.0, 0.0, 0.0], // Start position
[5.0, 0.0, 0.0], // End position
[1.0, 0.0, 0.0, 1.0], // Line color
);
// Draw an 'X' on the x-axis, at the end of the line drawn above.
debug_renderer.draw_text_at_position(
"X", // String to draw
[6.0, 0.0, 0.0], // World-space position to draw at
[1.0, 0.0, 0.0, 1.0], // Text color
);
// Draw salmoney-colored text 10 pixels down and right from the top left corner of the screen
debug_renderer.draw_text_on_screen(
"Hello World!", // Text to draw
[10, 10], // Pixel coordinates relative to top-left corner of screen
[1.0, 0.4, 0.4, 0.7] // Text color
);
// Draw a yellow position marker
debug_renderer.draw_marker(
[1.0, 2.0, 3.0], // Position
0.5, // Size
[1.0, 1.0, 0.0, 1.0] // Color
);
// Render the final batch of all lines and text currently present in the vertex/index buffers
debug_renderer.render(
stream, // &mut gfx::Stream
camera_projection, // Current camera projection matrix
);
也可以使用静态方法将绘制命令排队,这在您希望在无法访问DebugRenderer实例的上下文中调试某些内容时很有用。
fn foobar() {
...
let x: Vector3<f32> = some_expression;
// Visually debug the value of `x` with a red position marker:
gfx_debug_draw::draw_marker(x, 1.0, [1.0, 0.0, 0.0, 1.0]);
...
}
依赖项
~8.5MB
~160K SLoC