mirror of
https://github.com/eliasstepanik/imgui-rs.git
synced 2026-01-11 13:38:35 +00:00
Merge pull request #534 from sanbox-irl/main
disabled debug_message_insert_support on apple
This commit is contained in:
commit
42e482138f
@ -37,7 +37,7 @@ default = [
|
|||||||
]
|
]
|
||||||
# Enable checking for OpenGL extensions
|
# Enable checking for OpenGL extensions
|
||||||
gl_extensions_support = []
|
gl_extensions_support = []
|
||||||
# Support for `glPrimitiveRestartIndex`
|
# Support for `gl.debug_message_insert`
|
||||||
debug_message_insert_support = []
|
debug_message_insert_support = []
|
||||||
# Support for `glBindVertexArray`
|
# Support for `glBindVertexArray`
|
||||||
bind_vertex_array_support = []
|
bind_vertex_array_support = []
|
||||||
|
|||||||
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
use std::{borrow::Cow, error::Error, fmt::Display, mem::size_of};
|
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 crate::versions::{GlVersion, GlslVersion};
|
||||||
use glow::{Context, HasContext};
|
use glow::{Context, HasContext};
|
||||||
@ -113,7 +113,7 @@ impl AutoRenderer {
|
|||||||
/// Some OpenGL errors trigger an error (few are explicitly checked,
|
/// Some OpenGL errors trigger an error (few are explicitly checked,
|
||||||
/// however)
|
/// however)
|
||||||
#[inline]
|
#[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)
|
self.renderer.render(&self.gl, &self.texture_map, draw_data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -261,7 +261,7 @@ impl Renderer {
|
|||||||
&mut self,
|
&mut self,
|
||||||
gl: &Context,
|
gl: &Context,
|
||||||
texture_map: &T,
|
texture_map: &T,
|
||||||
draw_data: &imgui::DrawData,
|
draw_data: &DrawData,
|
||||||
) -> Result<(), RenderError> {
|
) -> Result<(), RenderError> {
|
||||||
if self.is_destroyed {
|
if self.is_destroyed {
|
||||||
return Err(Self::renderer_destroyed());
|
return Err(Self::renderer_destroyed());
|
||||||
@ -296,7 +296,7 @@ impl Renderer {
|
|||||||
gl_debug_message(gl, "start loop over commands");
|
gl_debug_message(gl, "start loop over commands");
|
||||||
for command in draw_list.commands() {
|
for command in draw_list.commands() {
|
||||||
match command {
|
match command {
|
||||||
imgui::DrawCmd::Elements { count, cmd_params } => self.render_elements(
|
DrawCmd::Elements { count, cmd_params } => self.render_elements(
|
||||||
gl,
|
gl,
|
||||||
texture_map,
|
texture_map,
|
||||||
count,
|
count,
|
||||||
@ -305,10 +305,10 @@ impl Renderer {
|
|||||||
fb_width,
|
fb_width,
|
||||||
fb_height,
|
fb_height,
|
||||||
),
|
),
|
||||||
imgui::DrawCmd::RawCallback { callback, raw_cmd } => unsafe {
|
DrawCmd::RawCallback { callback, raw_cmd } => unsafe {
|
||||||
callback(draw_list.raw(), raw_cmd)
|
callback(draw_list.raw(), raw_cmd)
|
||||||
},
|
},
|
||||||
imgui::DrawCmd::ResetRenderState => {
|
DrawCmd::ResetRenderState => {
|
||||||
self.set_up_render_state(gl, draw_data, fb_width, fb_height)?
|
self.set_up_render_state(gl, draw_data, fb_width, fb_height)?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -332,7 +332,7 @@ impl Renderer {
|
|||||||
pub fn set_up_render_state(
|
pub fn set_up_render_state(
|
||||||
&mut self,
|
&mut self,
|
||||||
gl: &Context,
|
gl: &Context,
|
||||||
draw_data: &imgui::DrawData,
|
draw_data: &DrawData,
|
||||||
fb_width: f32,
|
fb_width: f32,
|
||||||
fb_height: f32,
|
fb_height: f32,
|
||||||
) -> Result<(), RenderError> {
|
) -> Result<(), RenderError> {
|
||||||
@ -407,9 +407,9 @@ impl Renderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: soon it should be possible for these to be `const` functions
|
// TODO: soon it should be possible for these to be `const` functions
|
||||||
let position_field_offset = memoffset::offset_of!(imgui::DrawVert, pos) as _;
|
let position_field_offset = memoffset::offset_of!(DrawVert, pos) as _;
|
||||||
let uv_field_offset = memoffset::offset_of!(imgui::DrawVert, uv) as _;
|
let uv_field_offset = memoffset::offset_of!(DrawVert, uv) as _;
|
||||||
let color_field_offset = memoffset::offset_of!(imgui::DrawVert, col) as _;
|
let color_field_offset = memoffset::offset_of!(DrawVert, col) as _;
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
gl.bind_buffer(glow::ARRAY_BUFFER, Some(self.vbo_handle));
|
gl.bind_buffer(glow::ARRAY_BUFFER, Some(self.vbo_handle));
|
||||||
@ -453,7 +453,7 @@ impl Renderer {
|
|||||||
texture_map: &T,
|
texture_map: &T,
|
||||||
element_count: usize,
|
element_count: usize,
|
||||||
element_params: imgui::DrawCmdParams,
|
element_params: imgui::DrawCmdParams,
|
||||||
draw_data: &imgui::DrawData,
|
draw_data: &DrawData,
|
||||||
fb_width: f32,
|
fb_width: f32,
|
||||||
fb_height: f32,
|
fb_height: f32,
|
||||||
) {
|
) {
|
||||||
@ -1083,7 +1083,8 @@ fn prepare_font_atlas<T: TextureMap>(
|
|||||||
Ok(gl_texture)
|
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<G: glow::HasContext>(gl: &G, message: impl AsRef<str>) {
|
fn gl_debug_message<G: glow::HasContext>(gl: &G, message: impl AsRef<str>) {
|
||||||
unsafe {
|
unsafe {
|
||||||
gl.debug_message_insert(
|
gl.debug_message_insert(
|
||||||
@ -1096,10 +1097,10 @@ fn gl_debug_message<G: glow::HasContext>(gl: &G, message: impl AsRef<str>) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(feature = "debug_message_insert_support"))]
|
#[cfg(any(target_vendor = "apple", not(feature = "debug_message_insert_support")))]
|
||||||
fn gl_debug_message<G: glow::HasContext>(_gl: &G, _message: impl AsRef<str>) {}
|
fn gl_debug_message<G: glow::HasContext>(_gl: &G, _message: impl AsRef<str>) {}
|
||||||
|
|
||||||
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)]
|
#![allow(clippy::deprecated_cfg_attr)]
|
||||||
|
|
||||||
let left = draw_data.display_pos[0];
|
let left = draw_data.display_pos[0];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user