[wasm] Add rust example

This commit is contained in:
Simon Cozens 2023-02-25 15:23:22 +00:00 committed by Behdad Esfahbod
parent 840b5dff73
commit 83b9c34f0b
2 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,13 @@
[package]
name = "hello-wasm"
version = "0.1.0"
edition = "2021"
[lib]
crate-type = ["cdylib"]
[dependencies]
#externref = "0.1.0"
wasm-bindgen = "0.2.0"
tiny-rng = "0.2.0"
harfbuzz-wasm = { path="../../rust/harfbuzz-wasm"}

View File

@ -0,0 +1,18 @@
use harfbuzz_wasm::{Font, GlyphBuffer};
use tiny_rng::{Rand, Rng};
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn shape(font_ref: u32, buf_ref: u32) -> i32 {
let mut rng = Rng::from_seed(123456);
let font = Font::from_ref(font_ref);
font.shape_with(buf_ref, "ot");
let mut buffer = GlyphBuffer::from_ref(buf_ref);
for mut item in buffer.glyphs.iter_mut() {
// Randomize it!
item.x_offset = ((rng.rand_u32() as i32) >> 24) - 120;
item.y_offset = ((rng.rand_u32() as i32) >> 24) - 120;
}
// Buffer is written back to HB on drop
1
}