9 releases (stable)

1.1.4 Jan 16, 2020
1.1.3 Oct 20, 2019
1.0.0 Apr 20, 2019
1.0.0-pre3 Mar 19, 2019
0.1.0-rc2 Mar 19, 2019

#190 in Graphics APIs

MIT license

88KB
1.5K SLoC

ul

High level bindings to Ultralight SDK. Ultralight is a light and fast option to integrate GPU-accelerated HTML UI in your app.

#![allow(dead_code, unused_must_use)]

use ::ul::*;

fn main() {
    let mut config = ul::Config::new();
    let settings = ul::Settings::new();

    let mut ul_app = ul::UltralightApp::new(
        Some(settings),
        Some(config),
    );

    ul_app.window(
        853u32, 480u32,
        false, false, true, true, false,
    );

    let mut ul = ul::Ultralight::new(
        None,
        Some(ul_app.get_renderer()),
    );

    ul.app(&mut ul_app);

    ul.log_to_stdout();

    ul.load_html(r#"
        <html>
            <head>
                <style>
                    body {
                        background-color: black;
                        color: white;
                        font-size: 100px;
                    }
                </style>
            </head>
            <body>Hello</body>
        </html>"#);

    // or ..
    //ul.load_url("https://sly.mn");

    ul_app.overlay_resize(853u32, 480u32);

    let mut finished = |_| println!("loaded!");
    let mut dom_ready = |_| println!("dom ready!");

    ul.set_finish_loading_callback(&mut finished);
    ul.set_dom_ready_callback(&mut dom_ready);

    ul_app.window_set_resize_callback(&mut |width: u32, height: u32| {
        ul_app.overlay_resize(width, height);
    });

    ul_app.run();
}

Dependencies

~6.5MB
~116K SLoC