Load the Noto Sans font from the nodejs printer demo

This commit is contained in:
Simon Hausmann 2021-02-18 15:40:16 +01:00 committed by Olivier Goffart
parent 1b870959e6
commit 2fdaa44d51
3 changed files with 25 additions and 4 deletions

View file

@ -233,5 +233,6 @@ module.exports = {
ArrayModel: ArrayModel, ArrayModel: ArrayModel,
Timer: { Timer: {
singleShot: native.singleshot_timer, singleShot: native.singleshot_timer,
} },
register_font_from_path: native.register_font_from_path,
}; };

View file

@ -566,10 +566,22 @@ fn singleshot_timer(mut cx: FunctionContext) -> JsResult<JsValue> {
Ok(JsUndefined::new().upcast()) Ok(JsUndefined::new().upcast())
} }
fn register_font_from_path(mut cx: FunctionContext) -> JsResult<JsValue> {
let path = cx.argument::<JsString>(0)?.value();
match sixtyfps_interpreter::register_font_from_path(&path) {
Ok(_) => Ok(JsUndefined::new().upcast()),
Err(load_err) => {
return cx.throw_error(format!("error loading font {}: {}", path, load_err));
}
}
}
register_module!(mut m, { register_module!(mut m, {
m.export_function("load", load)?; m.export_function("load", load)?;
m.export_function("mock_elapsed_time", mock_elapsed_time)?; m.export_function("mock_elapsed_time", mock_elapsed_time)?;
m.export_function("singleshot_timer", singleshot_timer)?; m.export_function("singleshot_timer", singleshot_timer)?;
m.export_function("register_font_from_path", register_font_from_path)?;
Ok(()) Ok(())
}); });

View file

@ -9,9 +9,17 @@
Please contact info@sixtyfps.io for more information. Please contact info@sixtyfps.io for more information.
LICENSE END */ LICENSE END */
// import "sixtyfps"; const path = require("path");
require("sixtyfps"); let sixtyfps = require("sixtyfps");
// import * as demo from "../ui/printerdemo.60";
try {
for (font_file of ["NotoSans-Regular.ttf", "NotoSans-Bold.ttf"]) {
sixtyfps.register_font_from_path(path.resolve(__dirname, "../ui/fonts", font_file));
}
} catch (load_exception) {
console.error(load_exception);
}
let demo = require("../ui/printerdemo.60"); let demo = require("../ui/printerdemo.60");
let window = new demo.MainWindow(); let window = new demo.MainWindow();