[wasm] Add rust example
This commit is contained in:
parent
840b5dff73
commit
83b9c34f0b
|
@ -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"}
|
|
@ -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
|
||||
}
|
Loading…
Reference in New Issue