diff --git a/imgui-glow-renderer/Cargo.toml b/imgui-glow-renderer/Cargo.toml index ee73c10..3fbc013 100644 --- a/imgui-glow-renderer/Cargo.toml +++ b/imgui-glow-renderer/Cargo.toml @@ -37,7 +37,7 @@ default = [ ] # Enable checking for OpenGL extensions gl_extensions_support = [] -# Support for `glPrimitiveRestartIndex` +# Support for `gl.debug_message_insert` debug_message_insert_support = [] # Support for `glBindVertexArray` bind_vertex_array_support = [] diff --git a/imgui-glow-renderer/src/lib.rs b/imgui-glow-renderer/src/lib.rs index 3381447..eacdd90 100644 --- a/imgui-glow-renderer/src/lib.rs +++ b/imgui-glow-renderer/src/lib.rs @@ -44,7 +44,7 @@ use std::{borrow::Cow, error::Error, fmt::Display, mem::size_of}; -use imgui::internal::RawWrapper; +use imgui::{internal::RawWrapper, DrawCmd, DrawData, DrawVert}; use crate::versions::{GlVersion, GlslVersion}; use glow::{Context, HasContext}; @@ -113,7 +113,7 @@ impl AutoRenderer { /// Some OpenGL errors trigger an error (few are explicitly checked, /// however) #[inline] - pub fn render(&mut self, draw_data: &imgui::DrawData) -> Result<(), RenderError> { + pub fn render(&mut self, draw_data: &DrawData) -> Result<(), RenderError> { self.renderer.render(&self.gl, &self.texture_map, draw_data) } } @@ -261,7 +261,7 @@ impl Renderer { &mut self, gl: &Context, texture_map: &T, - draw_data: &imgui::DrawData, + draw_data: &DrawData, ) -> Result<(), RenderError> { if self.is_destroyed { return Err(Self::renderer_destroyed()); @@ -296,7 +296,7 @@ impl Renderer { gl_debug_message(gl, "start loop over commands"); for command in draw_list.commands() { match command { - imgui::DrawCmd::Elements { count, cmd_params } => self.render_elements( + DrawCmd::Elements { count, cmd_params } => self.render_elements( gl, texture_map, count, @@ -305,10 +305,10 @@ impl Renderer { fb_width, fb_height, ), - imgui::DrawCmd::RawCallback { callback, raw_cmd } => unsafe { + DrawCmd::RawCallback { callback, raw_cmd } => unsafe { callback(draw_list.raw(), raw_cmd) }, - imgui::DrawCmd::ResetRenderState => { + DrawCmd::ResetRenderState => { self.set_up_render_state(gl, draw_data, fb_width, fb_height)? } } @@ -332,7 +332,7 @@ impl Renderer { pub fn set_up_render_state( &mut self, gl: &Context, - draw_data: &imgui::DrawData, + draw_data: &DrawData, fb_width: f32, fb_height: f32, ) -> Result<(), RenderError> { @@ -407,9 +407,9 @@ impl Renderer { } // TODO: soon it should be possible for these to be `const` functions - let position_field_offset = memoffset::offset_of!(imgui::DrawVert, pos) as _; - let uv_field_offset = memoffset::offset_of!(imgui::DrawVert, uv) as _; - let color_field_offset = memoffset::offset_of!(imgui::DrawVert, col) as _; + let position_field_offset = memoffset::offset_of!(DrawVert, pos) as _; + let uv_field_offset = memoffset::offset_of!(DrawVert, uv) as _; + let color_field_offset = memoffset::offset_of!(DrawVert, col) as _; unsafe { gl.bind_buffer(glow::ARRAY_BUFFER, Some(self.vbo_handle)); @@ -453,7 +453,7 @@ impl Renderer { texture_map: &T, element_count: usize, element_params: imgui::DrawCmdParams, - draw_data: &imgui::DrawData, + draw_data: &DrawData, fb_width: f32, fb_height: f32, ) { @@ -1083,7 +1083,8 @@ fn prepare_font_atlas( Ok(gl_texture) } -#[cfg(feature = "debug_message_insert_support")] +// this CFG guard disables apple usage of this function -- apple only has supported up to opengl 3.3 +#[cfg(all(not(target_vendor = "apple"), feature = "debug_message_insert_support"))] fn gl_debug_message(gl: &G, message: impl AsRef) { unsafe { gl.debug_message_insert( @@ -1096,10 +1097,10 @@ fn gl_debug_message(gl: &G, message: impl AsRef) { }; } -#[cfg(not(feature = "debug_message_insert_support"))] +#[cfg(any(target_vendor = "apple", not(feature = "debug_message_insert_support")))] fn gl_debug_message(_gl: &G, _message: impl AsRef) {} -fn calculate_matrix(draw_data: &imgui::DrawData, clip_origin_is_lower_left: bool) -> [f32; 16] { +fn calculate_matrix(draw_data: &DrawData, clip_origin_is_lower_left: bool) -> [f32; 16] { #![allow(clippy::deprecated_cfg_attr)] let left = draw_data.display_pos[0];