|
1 | 1 | use crate::external_interface::JavascriptInterface; |
2 | 2 | use crate::navigator::{OpenUrlMode, WebNavigatorBackend}; |
3 | 3 | use crate::{ |
4 | | - JavascriptPlayer, RUFFLE_GLOBAL_PANIC, RuffleHandle, ScrollingBehavior, SocketProxy, audio, |
5 | | - log_adapter, storage, ui, |
| 4 | + DeviceFontRenderer, JavascriptPlayer, RUFFLE_GLOBAL_PANIC, RuffleHandle, ScrollingBehavior, |
| 5 | + SocketProxy, audio, log_adapter, storage, ui, |
6 | 6 | }; |
7 | 7 | use js_sys::{Promise, RegExp}; |
8 | 8 | use ruffle_core::backend::audio::{AudioBackend, NullAudioBackend}; |
@@ -65,6 +65,7 @@ pub struct RuffleInstanceBuilder { |
65 | 65 | pub(crate) gamepad_button_mapping: HashMap<GamepadButton, KeyCode>, |
66 | 66 | pub(crate) url_rewrite_rules: Vec<(RegExp, String)>, |
67 | 67 | pub(crate) scrolling_behavior: ScrollingBehavior, |
| 68 | + pub(crate) device_font_renderer: DeviceFontRenderer, |
68 | 69 | } |
69 | 70 |
|
70 | 71 | impl Default for RuffleInstanceBuilder { |
@@ -104,6 +105,7 @@ impl Default for RuffleInstanceBuilder { |
104 | 105 | gamepad_button_mapping: HashMap::new(), |
105 | 106 | url_rewrite_rules: vec![], |
106 | 107 | scrolling_behavior: ScrollingBehavior::Smart, |
| 108 | + device_font_renderer: DeviceFontRenderer::Embedded, |
107 | 109 | } |
108 | 110 | } |
109 | 111 | } |
@@ -347,6 +349,15 @@ impl RuffleInstanceBuilder { |
347 | 349 | }; |
348 | 350 | } |
349 | 351 |
|
| 352 | + #[wasm_bindgen(js_name = "setDeviceFontRenderer")] |
| 353 | + pub fn set_device_font_renderer(&mut self, device_font_renderer: String) { |
| 354 | + self.device_font_renderer = match device_font_renderer.as_str() { |
| 355 | + "embedded" => DeviceFontRenderer::Embedded, |
| 356 | + "canvas" => DeviceFontRenderer::Canvas, |
| 357 | + _ => return, |
| 358 | + }; |
| 359 | + } |
| 360 | + |
350 | 361 | // TODO: This should be split into two methods that either load url or load data |
351 | 362 | // Right now, that's done immediately afterwards in TS |
352 | 363 | pub async fn build(&self, parent: HtmlElement, js_player: JavascriptPlayer) -> Promise { |
|
0 commit comments