From 787fee8a1a319bf5671282a4c8f445783f9482e9 Mon Sep 17 00:00:00 2001 From: Junkui Zhang <364772080@qq.com> Date: Tue, 22 Jul 2025 22:08:55 +0800 Subject: [PATCH] fix --- crates/gpui/src/platform/windows/directx_atlas.rs | 14 +++++++------- .../gpui/src/platform/windows/directx_renderer.rs | 5 +++++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/crates/gpui/src/platform/windows/directx_atlas.rs b/crates/gpui/src/platform/windows/directx_atlas.rs index d915a93cfaefaf8710963f34048a8b5048d9b23d..8ab4092efdcefc0bcbc819983726c12985a80156 100644 --- a/crates/gpui/src/platform/windows/directx_atlas.rs +++ b/crates/gpui/src/platform/windows/directx_atlas.rs @@ -35,10 +35,10 @@ struct DirectXAtlasTexture { } impl DirectXAtlas { - pub(crate) fn new(device: ID3D11Device, device_context: ID3D11DeviceContext) -> Self { + pub(crate) fn new(device: &ID3D11Device, device_context: &ID3D11DeviceContext) -> Self { DirectXAtlas(Mutex::new(DirectXAtlasState { - device, - device_context, + device: device.clone(), + device_context: device_context.clone(), monochrome_textures: Default::default(), polychrome_textures: Default::default(), tiles_by_key: Default::default(), @@ -56,12 +56,12 @@ impl DirectXAtlas { pub(crate) fn handle_device_lost( &self, - device: ID3D11Device, - device_context: ID3D11DeviceContext, + device: &ID3D11Device, + device_context: &ID3D11DeviceContext, ) { let mut lock = self.0.lock(); - lock.device = device; - lock.device_context = device_context; + lock.device = device.clone(); + lock.device_context = device_context.clone(); lock.monochrome_textures = AtlasTextureList::default(); lock.polychrome_textures = AtlasTextureList::default(); lock.tiles_by_key.clear(); diff --git a/crates/gpui/src/platform/windows/directx_renderer.rs b/crates/gpui/src/platform/windows/directx_renderer.rs index 72c2cb5d420284a53d2b2348e7a10b96190bc1f3..8d8e4f3e3bdf87759d5e35d803c542f429b9ce41 100644 --- a/crates/gpui/src/platform/windows/directx_renderer.rs +++ b/crates/gpui/src/platform/windows/directx_renderer.rs @@ -253,6 +253,11 @@ impl DirectXRenderer { { self._direct_composition = direct_composition; } + unsafe { + self.devices + .device_context + .OMSetRenderTargets(Some(&self.resources.render_target_view), None); + } Ok(()) }