diff --git a/crates/gpui/examples/text.rs b/crates/gpui/examples/text.rs index 1166bb279541c80eb8686b59c85724b4068895ed..8de119c7a13a5782e79f6d18a2a348b7d2edb6d2 100644 --- a/crates/gpui/examples/text.rs +++ b/crates/gpui/examples/text.rs @@ -97,7 +97,7 @@ struct Specimen { impl Specimen { pub fn new(id: usize) -> Self { - let string = SharedString::new_static("The quick brown fox jumps over the lazy dog"); + let string = SharedString::new_static("many thihngs could be written here"); let id_string = format!("specimen-{}", id); let id = ElementId::Name(id_string.into()); Self { @@ -151,6 +151,7 @@ impl RenderOnce for Specimen { div() .id(self.id) .bg(theme.bg) + .font_family("Zed Plex Mono") .text_color(theme.fg) .text_size(px(font_size * scale)) .line_height(relative(line_height)) @@ -270,7 +271,7 @@ 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)) diff --git a/crates/gpui/src/platform/windows/direct_write.rs b/crates/gpui/src/platform/windows/direct_write.rs index f8826b01717da085ca808c516b9a9aa591439276..80ae3c8ea5b32a09ce4335c6336836c51cc3f3dd 100644 --- a/crates/gpui/src/platform/windows/direct_write.rs +++ b/crates/gpui/src/platform/windows/direct_write.rs @@ -59,8 +59,8 @@ unsafe impl Send for Syncer {} unsafe impl Sync for Syncer {} struct DirectWriteState { - #[cfg(feature = "enable-renderdoc")] - renderdoc: Syncer>>>, + // #[cfg(feature = "enable-renderdoc")] + // renderdoc: Syncer>>>, components: DirectWriteComponent, system_ui_font_name: SharedString, system_font_collection: IDWriteFontCollection1, @@ -236,8 +236,8 @@ impl DirectWriteTextSystem { let system_ui_font_name = get_system_ui_font_name(); Ok(Self(RwLock::new(DirectWriteState { - #[cfg(feature = "enable-renderdoc")] - renderdoc: Syncer(Arc::new(RwLock::new(renderdoc::RenderDoc::new().unwrap()))), + // #[cfg(feature = "enable-renderdoc")] + // renderdoc: Syncer(Arc::new(RwLock::new(renderdoc::RenderDoc::new().unwrap()))), components, system_ui_font_name, system_font_collection, @@ -965,11 +965,10 @@ impl DirectWriteState { let bitmap_idx = bitmap_y * bitmap_size.width.0 as usize + bitmap_x; if texture_idx + 2 < alpha_data.len() && bitmap_idx < bitmap_data.len() { - let avg = (alpha_data[texture_idx] as u32 - + alpha_data[texture_idx + 1] as u32 - + alpha_data[texture_idx + 2] as u32) - / 3; - bitmap_data[bitmap_idx] = avg as u8; + let max_value = alpha_data[texture_idx] + .max(alpha_data[texture_idx + 1]) + .max(alpha_data[texture_idx + 2]); + bitmap_data[bitmap_idx] = max_value; } } } @@ -1157,11 +1156,11 @@ impl DirectWriteState { texture.unwrap() }; - #[cfg(feature = "enable-renderdoc")] - self.renderdoc - .0 - .write() - .start_frame_capture(std::ptr::null(), std::ptr::null()); + // #[cfg(feature = "enable-renderdoc")] + // self.renderdoc + // .0 + // .write() + // .start_frame_capture(std::ptr::null(), std::ptr::null()); let device_context = &gpu_state.device_context; unsafe { device_context.IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP) }; @@ -1240,11 +1239,11 @@ impl DirectWriteState { }; } - #[cfg(feature = "enable-renderdoc")] - self.renderdoc - .0 - .write() - .end_frame_capture(std::ptr::null(), std::ptr::null()); + // #[cfg(feature = "enable-renderdoc")] + // self.renderdoc + // .0 + // .write() + // .end_frame_capture(std::ptr::null(), std::ptr::null()); println!("render finished"); diff --git a/crates/gpui/src/platform/windows/directx_atlas.rs b/crates/gpui/src/platform/windows/directx_atlas.rs index 068d1b6461d3a9279dd3a950725723ccb4c178cd..7ad293cd3970c6776807dc740283f8479c216e6d 100644 --- a/crates/gpui/src/platform/windows/directx_atlas.rs +++ b/crates/gpui/src/platform/windows/directx_atlas.rs @@ -264,6 +264,7 @@ impl DirectXAtlasTexture { bounds: Bounds, bytes: &[u8], ) { + println!("{:?}", bounds); unsafe { device_context.UpdateSubresource( &self.texture, diff --git a/crates/gpui/src/platform/windows/shaders.hlsl b/crates/gpui/src/platform/windows/shaders.hlsl index 2533aa188579edb32addde39bef992e2351ad084..33f2e0392502b12f5a66336bf8648a1c742511ff 100644 --- a/crates/gpui/src/platform/windows/shaders.hlsl +++ b/crates/gpui/src/platform/windows/shaders.hlsl @@ -1060,15 +1060,22 @@ float4 blend_color(float4 color, float alpha_factor) { return float4(color.rgb * multiplier, alpha); } +float3 linear_to_srgbee(float3 l) { + bool cutoff = l < float3(0.0031308, 0.0031308, 0.0031308); + float3 higher = float3(1.055, 1.055, 1.055) * pow(l, float3(1.0 / 2.4, 1.0 / 2.4, 1.0 / 2.4)) - float3(0.055, 0.055, 0.055); + float3 lower = l * float3(12.92, 12.92, 12.92); + return cutoff ? lower : higher; +} + float4 monochrome_sprite_fragment(MonochromeSpriteFragmentInput input): SV_Target { float sample = t_sprite.Sample(s_sprite, input.tile_position).r; float4 color = input.color; - color.a *= sample; - return color; - // if (any(input.clip_distance < 0.0)) { - // return float4(0.0, 0.0, 0.0, 0.0); - // } - // return blend_color(input.color, sample); + // color.a *= sample; + // return float4(color.rgb, color.a); + if (any(input.clip_distance < 0.0)) { + return float4(0.0, 0.0, 0.0, 0.0); + } + return blend_color(input.color, sample); } /*