50 releases
0.22.1 | Aug 17, 2023 |
---|---|
0.22.0 | Apr 2, 2023 |
0.21.0 | Mar 14, 2023 |
0.20.3 | Dec 13, 2022 |
0.0.8 | Jun 26, 2021 |
#149 in Graphics APIs
21MB
2K
SLoC
Contains (Windows DLL, 20MB) dxcompiler.dll, (Windows DLL, 1.5MB) dxil.dll
mltg
Direct2D wrapper library
Usage overview
1. Create a mltg::Context
and a mltg::Factory
let ctx = mltg::Context::new(mltg::Direct2D::new()?)?;
let factory = ctx.create_factory();
2. Create a render target
In the case of using winit.
let window_size = window.inner_size().to_logical::<f32>(window.scale_factor());
let mut render_target = ctx.create_render_target(
window.raw_window_handle(), // winit window
(window_size.width, window_size.height),
)?;
3. Create resources
For example, create the solid color brush.
let brush = factory.create_solid_color_brush((1.0, 1.0, 1.0, 1.0))?;
4. Draw
For example, draw the rectangle of filled color.
ctx.set_scale_factor(window.scale_factor() as _);
ctx.draw(&render_target, |cmd| {
cmd.clear((0.0, 0.0, 0.3, 0.0));
cmd.fill(
&mltg::Rect::from_points((10.0, 10.0), (100.0, 100.0)),
&brush,
);
});
Copyright (c) 2021 LNSEAB
Dependencies
~129MB
~2M SLoC