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

MIT license

21MB
2K SLoC

Contains (Windows DLL, 20MB) dxcompiler.dll, (Windows DLL, 1.5MB) dxil.dll

mltg

mltg at crates.io mltg at docs.rs

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