Merge pull request #534 from sanbox-irl/main

disabled debug_message_insert_support on apple
This commit is contained in:
Jonathan Spira 2021-09-20 10:30:25 -04:00 committed by GitHub
commit 42e482138f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 15 deletions

View File

@ -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 = []

View File

@ -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];