From bfe2e16a40b454f74b26e5cb15cab95122c4055e Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Mon, 20 Apr 2020 02:57:38 -0400 Subject: [PATCH] BY BINDING THE OLD TEXTURE, WE RESTORE IMGUI --- src/graphics_imgui.rs | 13 ++++++++----- src/point_cloud/viewer_image.rs | 12 +++++++++--- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/graphics_imgui.rs b/src/graphics_imgui.rs index f7a135b178..c665f28ce4 100644 --- a/src/graphics_imgui.rs +++ b/src/graphics_imgui.rs @@ -1,17 +1,20 @@ use imgui::*; +use gl::types::*; +use gl; +use gl_debug::enable_opengl_debugging; use glium::Display; +use glium::backend::Facade; use glutin::ContextBuilder; use glutin::event::{Event, WindowEvent}; use glutin::event_loop::{ControlFlow, EventLoop}; -use glium::backend::Facade; use glutin::window::WindowBuilder; +use opengl_wrapper::{Texture, Buffer}; use point_cloud::point_cloud_visualiser::{PointCloudVisualizer, PointCloudVisualizerError}; -use point_cloud::viewer_image::ViewerImage; +use point_cloud::viewer_image::{ViewerImage, ImageDimensions}; use sensor_control::CaptureProvider; use std::sync::Arc; use support; -use gl_debug::enable_opengl_debugging; pub fn run(capture_provider: Arc, calibration_data: k4a_sys::k4a_calibration_t) { let system = support::init(file!()); @@ -25,12 +28,12 @@ pub fn run(capture_provider: Arc, calibration_data: k4a_sys::k4 enable_opengl_debugging(); - /*let mut texture = ViewerImage::create( + let mut texture = ViewerImage::create( 800, 800, None, None - ).expect("ViewerImage texture creation should work");*/ + ).expect("ViewerImage texture creation should work"); system.main_loop(move |_, ui| { Window::new(im_str!("Hello world")) diff --git a/src/point_cloud/viewer_image.rs b/src/point_cloud/viewer_image.rs index 6e27b4bfe3..d31ca31852 100644 --- a/src/point_cloud/viewer_image.rs +++ b/src/point_cloud/viewer_image.rs @@ -97,7 +97,13 @@ impl ViewerImage { format.unwrap_or(gl::BGRA) )?; + // NB: To be a nice citizen with other tools, let's unbind. + let mut last_texture_id = 0; + unsafe { + // NB: To be a good citizen, let's rebind the old texture. + gl::GetIntegerv(gl::TEXTURE_BINDING_2D, &mut last_texture_id); + gl::BindTexture(gl::TEXTURE_2D, viewer_image.texture.id()); gl::TexParameteri(gl::TEXTURE_2D, gl::TEXTURE_MIN_FILTER, gl::LINEAR as i32); @@ -111,11 +117,11 @@ impl ViewerImage { width as i32, height as i32, ); - } - unsafe { - //viewer_image.update_texture(data)?; viewer_image.update_texture(None)?; + + // NB: To be a nice citizen with other tools, let's unbind. + gl::BindTexture(gl::TEXTURE_2D, last_texture_id as u32); } Ok(viewer_image)