From c3dab791b954de9047a51f906324ec85d4d134e0 Mon Sep 17 00:00:00 2001 From: Paulo Santana Date: Sat, 18 Jan 2025 15:48:07 -0300 Subject: [PATCH] Revert "delete unused code for dummy platform and renderer backends" This reverts commit d616a13047e0f138e92fa582202f06d7dc3d5397. --- imgui/src/docking_utils.rs | 115 +++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/imgui/src/docking_utils.rs b/imgui/src/docking_utils.rs index f5a4650..3b42d09 100644 --- a/imgui/src/docking_utils.rs +++ b/imgui/src/docking_utils.rs @@ -188,11 +188,92 @@ pub(crate) extern "C" fn platform_create_vk_surface( }) } +/// The default [`PlatformViewportBackend`], does nothing. +pub(crate) struct DummyPlatformViewportBackend {} +impl PlatformViewportBackend for DummyPlatformViewportBackend { + fn create_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn destroy_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn show_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn set_window_pos(&mut self, _viewport: &mut Viewport, _pos: [f32; 2]) { + unimplemented!() + } + + fn get_window_pos(&mut self, _viewport: &mut Viewport) -> [f32; 2] { + unimplemented!() + } + + fn set_window_size(&mut self, _viewport: &mut Viewport, _size: [f32; 2]) { + unimplemented!() + } + + fn get_window_size(&mut self, _viewport: &mut Viewport) -> [f32; 2] { + unimplemented!() + } + + fn set_window_focus(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn get_window_focus(&mut self, _viewport: &mut Viewport) -> bool { + unimplemented!() + } + + fn get_window_minimized(&mut self, _viewport: &mut Viewport) -> bool { + unimplemented!() + } + + fn set_window_title(&mut self, _viewport: &mut Viewport, _title: &str) { + unimplemented!() + } + + fn set_window_alpha(&mut self, _viewport: &mut Viewport, _alpha: f32) { + unimplemented!() + } + + fn update_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn render_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn swap_buffers(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn create_vk_surface( + &mut self, + _viewport: &mut Viewport, + _instance: u64, + _out_surface: &mut u64, + ) -> i32 { + unimplemented!() + } +} + /// Just holds a [`PlatformViewportBackend`]. pub(crate) struct PlatformViewportContext { pub(crate) backend: Box, } +impl PlatformViewportContext { + pub(crate) fn dummy() -> Self { + Self { + backend: Box::new(DummyPlatformViewportBackend {}), + } + } +} + /// Trait that holds optional functions for a rendering backend to support multiple viewports. /// /// It is completely fine to not use this Backend at all, as all functions are optional. @@ -233,11 +314,45 @@ pub(crate) extern "C" fn renderer_swap_buffers(viewport: *mut Viewport, _arg: *m }) } +/// The default [`RendererViewportBackend`], does nothing. +pub(crate) struct DummyRendererViewportBackend {} +impl RendererViewportBackend for DummyRendererViewportBackend { + fn create_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn destroy_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn set_window_size(&mut self, _viewport: &mut Viewport, _size: [f32; 2]) { + unimplemented!() + } + + fn render_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn swap_buffers(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } +} + /// Just holds a [`RendererViewportBackend`]. pub(crate) struct RendererViewportContext { pub(crate) backend: Box, } +impl RendererViewportContext { + pub(crate) fn dummy() -> Self { + Self { + backend: Box::new(DummyRendererViewportBackend {}), + } + } +} + +unsafe impl Send for RendererViewportContext {} + /// Describes a monitor that can be used by ImGui. #[repr(C)] pub struct PlatformMonitor {