diff --git a/imgui-examples/examples/hello_gfx.rs b/imgui-examples/examples/hello_gfx.rs index 68b632a..162f32d 100644 --- a/imgui-examples/examples/hello_gfx.rs +++ b/imgui-examples/examples/hello_gfx.rs @@ -1,11 +1,3 @@ -extern crate gfx; -extern crate gfx_window_glutin; -extern crate glutin; -#[macro_use] -extern crate imgui; -extern crate imgui_gfx_renderer; -extern crate imgui_winit_support; - use imgui::*; mod support_gfx; diff --git a/imgui-examples/examples/support_gfx/mod.rs b/imgui-examples/examples/support_gfx/mod.rs index b7dab92..d59cec6 100644 --- a/imgui-examples/examples/support_gfx/mod.rs +++ b/imgui-examples/examples/support_gfx/mod.rs @@ -18,7 +18,7 @@ pub fn run bool>(title: String, clear_color: [f32; 4], mut run_ .with_dimensions(glutin::dpi::LogicalSize::new(1024f64, 768f64)); let (window, mut device, mut factory, mut main_color, mut main_depth) = gfx_window_glutin::init::(window, context, &events_loop) - .expect("Failed to initalize graphics"); + .expect("Failed to initalize graphics"); let mut encoder: gfx::Encoder<_, _> = factory.create_command_buffer().into(); let shaders = { let version = device.get_info().shading_language; diff --git a/imgui-gfx-renderer/src/lib.rs b/imgui-gfx-renderer/src/lib.rs index f3e646a..bbfb794 100644 --- a/imgui-gfx-renderer/src/lib.rs +++ b/imgui-gfx-renderer/src/lib.rs @@ -1,7 +1,3 @@ -#[macro_use] -extern crate gfx; -extern crate imgui; - use gfx::handle::{Buffer, RenderTargetView}; use gfx::memory::Bind; use gfx::pso::{PipelineData, PipelineState}; @@ -52,9 +48,9 @@ macro_rules! extended_defines { #[allow(missing_docs)] mod $module { #[allow(unused_imports)] - use super::*; + use crate::*; #[allow(unused_imports)] - use super::gfx; + use gfx::gfx_pipeline_inner; gfx_pipeline_inner!{ $( $field: $ty, )*} diff --git a/imgui-glium-examples/examples/color_button.rs b/imgui-glium-examples/examples/color_button.rs index b1ff2c8..18e86de 100644 --- a/imgui-glium-examples/examples/color_button.rs +++ b/imgui-glium-examples/examples/color_button.rs @@ -1,9 +1,3 @@ -extern crate glium; -#[macro_use] -extern crate imgui; -extern crate imgui_glium_renderer; -extern crate imgui_winit_support; - use imgui::*; mod support; diff --git a/imgui-glium-examples/examples/custom_textures.rs b/imgui-glium-examples/examples/custom_textures.rs index d265867..0b3376d 100644 --- a/imgui-glium-examples/examples/custom_textures.rs +++ b/imgui-glium-examples/examples/custom_textures.rs @@ -1,9 +1,3 @@ -extern crate glium; -extern crate image; -extern crate imgui; -extern crate imgui_glium_renderer; -extern crate imgui_winit_support; - use std::borrow::Cow; use std::error::Error; use std::io::Cursor; diff --git a/imgui-glium-examples/examples/hello_world.rs b/imgui-glium-examples/examples/hello_world.rs index 4b7feb0..95de9d8 100644 --- a/imgui-glium-examples/examples/hello_world.rs +++ b/imgui-glium-examples/examples/hello_world.rs @@ -1,9 +1,3 @@ -extern crate glium; -#[macro_use] -extern crate imgui; -extern crate imgui_glium_renderer; -extern crate imgui_winit_support; - use imgui::*; mod support; diff --git a/imgui-glium-examples/examples/test_drawing_channels_split.rs b/imgui-glium-examples/examples/test_drawing_channels_split.rs index bd6807b..e0d8813 100644 --- a/imgui-glium-examples/examples/test_drawing_channels_split.rs +++ b/imgui-glium-examples/examples/test_drawing_channels_split.rs @@ -1,8 +1,3 @@ -extern crate glium; -extern crate imgui; -extern crate imgui_glium_renderer; -extern crate imgui_winit_support; - mod support; const CLEAR_COLOR: [f32; 4] = [0.2, 0.2, 0.2, 1.0]; diff --git a/imgui-glium-examples/examples/test_window.rs b/imgui-glium-examples/examples/test_window.rs index ba955af..2e8d792 100644 --- a/imgui-glium-examples/examples/test_window.rs +++ b/imgui-glium-examples/examples/test_window.rs @@ -1,8 +1,3 @@ -extern crate glium; -extern crate imgui; -extern crate imgui_glium_renderer; -extern crate imgui_winit_support; - mod support; const CLEAR_COLOR: [f32; 4] = [0.2, 0.2, 0.2, 1.0]; diff --git a/imgui-glium-examples/examples/test_window_impl.rs b/imgui-glium-examples/examples/test_window_impl.rs index c426124..544dd7d 100644 --- a/imgui-glium-examples/examples/test_window_impl.rs +++ b/imgui-glium-examples/examples/test_window_impl.rs @@ -1,9 +1,3 @@ -extern crate glium; -#[macro_use] -extern crate imgui; -extern crate imgui_glium_renderer; -extern crate imgui_winit_support; - use imgui::*; mod support; diff --git a/imgui-glium-renderer/src/lib.rs b/imgui-glium-renderer/src/lib.rs index 8eaa8ee..e3f3cdd 100644 --- a/imgui-glium-renderer/src/lib.rs +++ b/imgui-glium-renderer/src/lib.rs @@ -1,13 +1,9 @@ -#[macro_use] -extern crate glium; -extern crate imgui; - use glium::backend::{Context, Facade}; use glium::index::{self, PrimitiveType}; use glium::program; use glium::texture; use glium::vertex; -use glium::{DrawError, IndexBuffer, Program, Surface, Texture2d, VertexBuffer}; +use glium::{uniform, DrawError, IndexBuffer, Program, Surface, Texture2d, VertexBuffer}; use imgui::{DrawList, FrameSize, ImGui, ImTexture, Textures, Ui}; use std::borrow::Cow; use std::fmt; diff --git a/imgui-sys/build.rs b/imgui-sys/build.rs index 1502302..7c2991a 100644 --- a/imgui-sys/build.rs +++ b/imgui-sys/build.rs @@ -1,5 +1,3 @@ -extern crate cc; - fn main() { cc::Build::new() .cpp(true) diff --git a/imgui-sys/src/flags.rs b/imgui-sys/src/flags.rs index bf6e0b6..33d1f5c 100644 --- a/imgui-sys/src/flags.rs +++ b/imgui-sys/src/flags.rs @@ -1,3 +1,4 @@ +use bitflags::bitflags; use std::os::raw::c_int; bitflags!( diff --git a/imgui-sys/src/gfx_support.rs b/imgui-sys/src/gfx_support.rs index c00cea1..5fae1fc 100644 --- a/imgui-sys/src/gfx_support.rs +++ b/imgui-sys/src/gfx_support.rs @@ -1,9 +1,10 @@ use gfx::format::{Format, Formatted, U8Norm}; +use gfx::gfx_format; use gfx::pso::buffer::{ElemOffset, Element, Structure}; use gfx::traits::Pod; use std::mem; -use super::{ImDrawVert, ImVec2}; +use crate::{ImDrawVert, ImVec2}; unsafe impl Pod for ImDrawVert {} diff --git a/imgui-sys/src/glium_support.rs b/imgui-sys/src/glium_support.rs index 891f7e0..0f16955 100644 --- a/imgui-sys/src/glium_support.rs +++ b/imgui-sys/src/glium_support.rs @@ -3,23 +3,20 @@ use std::borrow::Cow; use std::mem; use std::os::raw::c_float; -use super::{ImDrawVert, ImVec2, ImVec4}; +use crate::{ImDrawVert, ImVec2, ImVec4}; -#[cfg(feature = "glium")] unsafe impl Attribute for ImVec2 { fn get_type() -> AttributeType { <(c_float, c_float) as Attribute>::get_type() } } -#[cfg(feature = "glium")] unsafe impl Attribute for ImVec4 { fn get_type() -> AttributeType { <(c_float, c_float, c_float, c_float) as Attribute>::get_type() } } -#[cfg(feature = "glium")] impl Vertex for ImDrawVert { fn build_bindings() -> VertexFormat { unsafe { diff --git a/imgui-sys/src/lib.rs b/imgui-sys/src/lib.rs index 53d4c7a..be9f025 100644 --- a/imgui-sys/src/lib.rs +++ b/imgui-sys/src/lib.rs @@ -1,17 +1,5 @@ #![allow(non_upper_case_globals)] -#[macro_use] -extern crate bitflags; - -extern crate libc; - -#[cfg(feature = "gfx")] -#[macro_use] -extern crate gfx; - -#[cfg(feature = "glium")] -extern crate glium; - use libc::size_t; use std::convert::From; use std::os::raw::{c_char, c_double, c_float, c_int, c_uint, c_ushort, c_void}; diff --git a/imgui-sys/src/structs.rs b/imgui-sys/src/structs.rs index 1815704..5ae626a 100644 --- a/imgui-sys/src/structs.rs +++ b/imgui-sys/src/structs.rs @@ -1,12 +1,12 @@ use std::os::raw::{c_char, c_float, c_int, c_short, c_uchar, c_uint, c_ushort, c_void}; use std::slice; -use super::enums::{ImGuiCol, ImGuiKey, ImGuiMouseCursor, ImGuiNavInput}; -use super::flags::{ +use crate::enums::{ImGuiCol, ImGuiKey, ImGuiMouseCursor, ImGuiNavInput}; +use crate::flags::{ ImDrawCornerFlags, ImDrawListFlags, ImFontAtlasFlags, ImGuiBackendFlags, ImGuiConfigFlags, ImGuiInputTextFlags, }; -use super::{ImDrawCallback, ImDrawIdx, ImGuiID, ImTextureID, ImU32, ImVec2, ImVec4, ImWchar}; +use crate::{ImDrawCallback, ImDrawIdx, ImGuiID, ImTextureID, ImU32, ImVec2, ImVec4, ImWchar}; /// Font atlas glyph range builder #[repr(C)] diff --git a/imgui-winit-support/src/lib.rs b/imgui-winit-support/src/lib.rs index 67e0923..368390a 100644 --- a/imgui-winit-support/src/lib.rs +++ b/imgui-winit-support/src/lib.rs @@ -5,8 +5,6 @@ //! In your initialization code call `configure_keys`: //! //! ```rust,no_run -//! # extern crate imgui; -//! # extern crate imgui_winit_support; //! use imgui::ImGui; //! //! # fn main() { @@ -19,9 +17,6 @@ //! you need to do is pass each event to `imgui_winit_support` as well: //! //! ```rust,no_run -//! # extern crate imgui; -//! # extern crate imgui_winit_support; -//! # extern crate winit; //! # use imgui::ImGui; //! # use winit::EventsLoop; //! # fn main() { @@ -50,9 +45,6 @@ //! For example, you might want to customize mouse wheel line scrolling amount: //! //! ```rust,no_run -//! # extern crate imgui; -//! # extern crate imgui_winit_support; -//! # extern crate winit; //! # use imgui::ImGui; //! # use winit::{EventsLoop, Event, WindowEvent, MouseScrollDelta, TouchPhase}; //! # fn main() { @@ -89,9 +81,6 @@ //! # } //! ``` -extern crate imgui; -extern crate winit; - use imgui::{FrameSize, ImGui, ImGuiKey, ImGuiMouseCursor}; use winit::{ ElementState, Event, KeyboardInput, ModifiersState, MouseButton, MouseCursor, MouseScrollDelta, @@ -184,11 +173,8 @@ pub fn handle_event( window_hidpi_factor: f64, app_hidpi_factor: f64, ) { - match event { - &Event::WindowEvent { ref event, .. } => { - handle_window_event(imgui, event, window_hidpi_factor, app_hidpi_factor) - } - _ => (), + if let Event::WindowEvent { ref event, .. } = event { + handle_window_event(imgui, event, window_hidpi_factor, app_hidpi_factor) } } @@ -201,9 +187,9 @@ pub fn handle_window_event( ) { use self::WindowEvent::*; match event { - &KeyboardInput { input, .. } => handle_keyboard_input(imgui, input), - &ReceivedCharacter(ch) => imgui.add_input_character(ch), - &CursorMoved { + KeyboardInput { input, .. } => handle_keyboard_input(imgui, *input), + ReceivedCharacter(ch) => imgui.add_input_character(*ch), + CursorMoved { position, modifiers, .. @@ -212,25 +198,25 @@ pub fn handle_window_event( .to_physical(window_hidpi_factor) .to_logical(app_hidpi_factor); imgui.set_mouse_pos(position.x as f32, position.y as f32); - handle_modifiers(imgui, modifiers); + handle_modifiers(imgui, *modifiers); } - &MouseWheel { + MouseWheel { delta, modifiers, phase: TouchPhase::Moved, .. } => { - handle_mouse_scroll_delta(imgui, delta, window_hidpi_factor, app_hidpi_factor); - handle_modifiers(imgui, modifiers); + handle_mouse_scroll_delta(imgui, *delta, window_hidpi_factor, app_hidpi_factor); + handle_modifiers(imgui, *modifiers); } - &MouseInput { + MouseInput { state, button, modifiers, .. } => { - handle_mouse_button_state(imgui, button, state); - handle_modifiers(imgui, modifiers); + handle_mouse_button_state(imgui, *button, *state); + handle_modifiers(imgui, *modifiers); } _ => (), } diff --git a/src/fonts.rs b/src/fonts.rs index d9c0c4e..f193c4d 100644 --- a/src/fonts.rs +++ b/src/fonts.rs @@ -127,18 +127,18 @@ impl FontGlyphRange { } unsafe fn to_ptr(&self, atlas: *mut sys::ImFontAtlas) -> *const sys::ImWchar { - match &self.0 { - &FontGlyphRangeData::ChineseFull => sys::ImFontAtlas_GetGlyphRangesChineseFull(atlas), - &FontGlyphRangeData::ChineseSimplifiedCommon => { + match self.0 { + FontGlyphRangeData::ChineseFull => sys::ImFontAtlas_GetGlyphRangesChineseFull(atlas), + FontGlyphRangeData::ChineseSimplifiedCommon => { sys::ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(atlas) } - &FontGlyphRangeData::Cyrillic => sys::ImFontAtlas_GetGlyphRangesCyrillic(atlas), - &FontGlyphRangeData::Default => sys::ImFontAtlas_GetGlyphRangesDefault(atlas), - &FontGlyphRangeData::Japanese => sys::ImFontAtlas_GetGlyphRangesJapanese(atlas), - &FontGlyphRangeData::Korean => sys::ImFontAtlas_GetGlyphRangesKorean(atlas), - &FontGlyphRangeData::Thai => sys::ImFontAtlas_GetGlyphRangesThai(atlas), + FontGlyphRangeData::Cyrillic => sys::ImFontAtlas_GetGlyphRangesCyrillic(atlas), + FontGlyphRangeData::Default => sys::ImFontAtlas_GetGlyphRangesDefault(atlas), + FontGlyphRangeData::Japanese => sys::ImFontAtlas_GetGlyphRangesJapanese(atlas), + FontGlyphRangeData::Korean => sys::ImFontAtlas_GetGlyphRangesKorean(atlas), + FontGlyphRangeData::Thai => sys::ImFontAtlas_GetGlyphRangesThai(atlas), - &FontGlyphRangeData::Custom(ptr) => ptr, + FontGlyphRangeData::Custom(ptr) => ptr, } } } diff --git a/src/image.rs b/src/image.rs index 6c3ae76..12704e6 100644 --- a/src/image.rs +++ b/src/image.rs @@ -110,6 +110,7 @@ impl<'ui> Image<'ui> { } /// Generic texture mapping for use by renderers. +#[derive(Debug, Default)] pub struct Textures { textures: HashMap, next: usize, diff --git a/src/lib.rs b/src/lib.rs index 4ea0cd8..7cc472f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -784,7 +784,7 @@ impl<'ui> Ui<'ui> { } ImId::Str(s) => { let start = s.as_ptr() as *const c_char; - let end = start.offset(s.len() as isize); + let end = start.add(s.len()); sys::igPushIDRange(start, end); } ImId::Ptr(p) => { @@ -820,7 +820,7 @@ impl<'ui> Ui<'ui> { let s = text.as_ref(); unsafe { let start = s.as_ptr(); - let end = start.offset(s.len() as isize); + let end = start.add(s.len()); sys::igTextUnformatted(start as *const c_char, end as *const c_char); } } @@ -1137,7 +1137,6 @@ impl<'ui> Ui<'ui> { /// # Examples /// /// ``` - /// # #[macro_use] extern crate imgui; /// # use imgui::*; /// fn user_interface(ui: &Ui) { /// ui.text("Hover over me"); @@ -1162,7 +1161,6 @@ impl<'ui> Ui<'ui> { /// # Examples /// /// ``` - /// # #[macro_use] extern crate imgui; /// # use imgui::*; /// fn user_interface(ui: &Ui) { /// ui.text("Hover over me"); @@ -1597,7 +1595,6 @@ impl<'ui> Ui<'ui> { /// # Examples /// /// ``` - /// # #[macro_use] extern crate imgui; /// # use imgui::*; /// fn user_interface(ui: &Ui) { /// ui.text("Hover over me");