From 18937f57561d5ead156787c3cba8ac3470186746 Mon Sep 17 00:00:00 2001 From: Junkui Zhang <364772080@qq.com> Date: Tue, 22 Jul 2025 22:18:18 +0800 Subject: [PATCH] Revert "make it not crash" This reverts commit a7e34ab0bc1540f7110fdf1ffa7d62a8fcd08aff. --- crates/gpui/src/platform/windows/direct_write.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/gpui/src/platform/windows/direct_write.rs b/crates/gpui/src/platform/windows/direct_write.rs index 4ee94e6155..3fc143fdcb 100644 --- a/crates/gpui/src/platform/windows/direct_write.rs +++ b/crates/gpui/src/platform/windows/direct_write.rs @@ -634,7 +634,7 @@ impl DirectWriteState { let advance = [0.0f32]; let offset = [DWRITE_GLYPH_OFFSET::default()]; let glyph_run = DWRITE_GLYPH_RUN { - fontFace: unsafe { std::mem::transmute_copy(&font.font_face) }, + fontFace: ManuallyDrop::new(Some(font.font_face.cast()?)), fontEmSize: params.font_size.0, glyphCount: 1, glyphIndices: glyph_id.as_ptr(), @@ -644,6 +644,7 @@ impl DirectWriteState { bidiLevel: 0, }; + let transform = DWRITE_MATRIX::default(); let rendering_mode = DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC; let measuring_mode = DWRITE_MEASURING_MODE_NATURAL; let baseline_origin_x = 0.0; @@ -652,7 +653,7 @@ impl DirectWriteState { let glyph_analysis = unsafe { self.components.factory.CreateGlyphRunAnalysis( &glyph_run, - None, + Some(&transform as *const _), rendering_mode, measuring_mode, DWRITE_GRID_FIT_MODE_DEFAULT, @@ -829,7 +830,7 @@ impl DirectWriteState { )); } - let mut alpha_data = vec![0u8; (width * height * 3) as usize]; + let mut alpha_data = vec![0u8; (width * height) as usize]; unsafe { glyph_analysis.CreateAlphaTexture(