more fixes and debugging

Kate created

Change summary

crates/gpui/examples/text.rs                     | 36 +++++++++---------
crates/gpui/src/platform/windows/direct_write.rs |  7 +--
2 files changed, 21 insertions(+), 22 deletions(-)

Detailed changes

crates/gpui/examples/text.rs 🔗

@@ -270,27 +270,27 @@ impl Render for TextExample {
                     .overflow_x_hidden()
                     .bg(rgb(0xffffff))
                     .size_full()
-                    .child(div().child(CharacterGrid::new().scale(base)))
+                    // .child(div().child(CharacterGrid::new().scale(base)))
                     .child(
                         div()
-                            .child(Specimen::new(self.next_id()).scale(step_down_2))
-                            .child(Specimen::new(self.next_id()).scale(step_down_2).invert())
-                            .child(Specimen::new(self.next_id()).scale(step_down_1))
-                            .child(Specimen::new(self.next_id()).scale(step_down_1).invert())
+                            // .child(Specimen::new(self.next_id()).scale(step_down_2))
+                            // .child(Specimen::new(self.next_id()).scale(step_down_2).invert())
+                            // .child(Specimen::new(self.next_id()).scale(step_down_1))
+                            // .child(Specimen::new(self.next_id()).scale(step_down_1).invert())
                             .child(Specimen::new(self.next_id()).scale(base))
-                            .child(Specimen::new(self.next_id()).scale(base).invert())
-                            .child(Specimen::new(self.next_id()).scale(step_up_1))
-                            .child(Specimen::new(self.next_id()).scale(step_up_1).invert())
-                            .child(Specimen::new(self.next_id()).scale(step_up_2))
-                            .child(Specimen::new(self.next_id()).scale(step_up_2).invert())
-                            .child(Specimen::new(self.next_id()).scale(step_up_3))
-                            .child(Specimen::new(self.next_id()).scale(step_up_3).invert())
-                            .child(Specimen::new(self.next_id()).scale(step_up_4))
-                            .child(Specimen::new(self.next_id()).scale(step_up_4).invert())
-                            .child(Specimen::new(self.next_id()).scale(step_up_5))
-                            .child(Specimen::new(self.next_id()).scale(step_up_5).invert())
-                            .child(Specimen::new(self.next_id()).scale(step_up_6))
-                            .child(Specimen::new(self.next_id()).scale(step_up_6).invert()),
+                            // .child(Specimen::new(self.next_id()).scale(base).invert())
+                            // .child(Specimen::new(self.next_id()).scale(step_up_1))
+                            // .child(Specimen::new(self.next_id()).scale(step_up_1).invert())
+                            // .child(Specimen::new(self.next_id()).scale(step_up_2))
+                            // .child(Specimen::new(self.next_id()).scale(step_up_2).invert())
+                            // .child(Specimen::new(self.next_id()).scale(step_up_3))
+                            // .child(Specimen::new(self.next_id()).scale(step_up_3).invert())
+                            // .child(Specimen::new(self.next_id()).scale(step_up_4))
+                            // .child(Specimen::new(self.next_id()).scale(step_up_4).invert())
+                            // .child(Specimen::new(self.next_id()).scale(step_up_5))
+                            // .child(Specimen::new(self.next_id()).scale(step_up_5).invert())
+                            // .child(Specimen::new(self.next_id()).scale(step_up_6))
+                            // .child(Specimen::new(self.next_id()).scale(step_up_6).invert()),
                     ),
             )
             .child(div().w(px(240.)).h_full().bg(colors.container))

crates/gpui/src/platform/windows/direct_write.rs 🔗

@@ -810,14 +810,13 @@ impl DirectWriteState {
             }
 
             // Resize to match expected bitmap_size if needed
-            let expected_size = bitmap_size.width.0 as usize * bitmap_size.height.0 as usize * 4;
-            rgba_data.resize(expected_size, 0);
 
             Ok((bitmap_size, rgba_data))
         } else {
             // For regular text, use grayscale or cleartype
             let texture_type = DWRITE_TEXTURE_CLEARTYPE_3x1;
             let texture_bounds = unsafe { glyph_analysis.GetAlphaTextureBounds(texture_type)? };
+            println!("glyph id: {:?}, variant: {:?}, size: {:?}, texture_bounds: {:?}", glyph_id, params.subpixel_variant, bitmap_size, texture_bounds);
 
             let width = (texture_bounds.right - texture_bounds.left) as u32;
             let height = (texture_bounds.bottom - texture_bounds.top) as u32;
@@ -848,10 +847,10 @@ impl DirectWriteState {
             }
 
             // Resize to match expected bitmap_size if needed
-            let expected_size = bitmap_size.width.0 as usize * bitmap_size.height.0 as usize;
+            let expected_size = width as usize * height as usize;
             grayscale_data.resize(expected_size, 0);
 
-            Ok((bitmap_size, grayscale_data))
+            Ok((size(DevicePixels(width as i32), DevicePixels(height as i32)), grayscale_data))
         }
     }