The following code will panic on my windows 10 machine (specifically with the font windows returns for ArialMT):
use font_kit::canvas::{Canvas, Format, RasterizationOptions};
use font_kit::hinting::HintingOptions;
use font_kit::source::SystemSource;
use pathfinder_geometry::transform2d::Transform2F;
fn main() {
let font = SystemSource::new()
.select_by_postscript_name("ArialMT")
.unwrap()
.load()
.unwrap();
let glyph_id = font.glyph_for_char('A').unwrap();
let raster_rect = font
.raster_bounds(
glyph_id,
32.0,
Transform2F::default(),
HintingOptions::None,
RasterizationOptions::SubpixelAa,
)
.unwrap();
let mut canvas = Canvas::new(raster_rect.size(), Format::Rgba32);
font.rasterize_glyph(
&mut canvas,
glyph_id,
32.0,
Transform2F::from_translation(-raster_rect.origin().to_f32()),
HintingOptions::None,
RasterizationOptions::SubpixelAa,
)
.unwrap();
}
Stacktrace:
thread 'main' panicked at 'not implemented', src\canvas.rs:120:47
stack backtrace:
0: std::panicking::begin_panic_handler
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c\/library\std\src\panicking.rs:517
1: core::panicking::panic_fmt
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c\/library\core\src\panicking.rs:100
2: core::panicking::panic
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c\/library\core\src\panicking.rs:50
3: font_kit::canvas::Canvas::blit_from
at .\src\canvas.rs:120
4: font_kit::loaders::directwrite::Font::rasterize_glyph
at .\src\loaders\directwrite.rs:542
The following code will panic on my windows 10 machine (specifically with the font windows returns for
ArialMT
):Stacktrace:
The specific line causing the panic is: https://github.com/servo/font-kit/blob/59213db4fe2458eefc79ea8b39f17c9b5e046c1e/src/canvas.rs#L118-L120 And this match is hit due to the values of
self.format = Rgba32
andsrc_format = Rgb24
.This is on the latest commit on
master
: bd6b39d3d82330a5da313d427a2e4d8deade2373.