diff --git a/src/gl/mod.rs b/src/gl/mod.rs index a973df8..85625a4 100644 --- a/src/gl/mod.rs +++ b/src/gl/mod.rs @@ -819,29 +819,30 @@ pub const DEPTH_ATTACHMENT: Attachment = gl::DEPTH_ATTACHMENT; pub struct Framebuffer(u32); -unsafe fn check_framebuffer_status() { - let status = gl::CheckFramebufferStatus(gl::FRAMEBUFFER); - let s = - match status { - gl::FRAMEBUFFER_UNDEFINED => "GL_FRAMEBUFFER_UNDEFINED", - gl::FRAMEBUFFER_INCOMPLETE_ATTACHMENT => "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT", - gl::FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT => "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", - gl::FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER => "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER", - gl::FRAMEBUFFER_INCOMPLETE_READ_BUFFER => "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER", - gl::FRAMEBUFFER_UNSUPPORTED => "GL_FRAMEBUFFER_UNSUPPORTED", - gl::FRAMEBUFFER_INCOMPLETE_MULTISAMPLE => "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE", - gl::FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS => "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS", +pub fn check_framebuffer_status() { + unsafe { + let status = gl::CheckFramebufferStatus(gl::FRAMEBUFFER); + let s = + match status { + gl::FRAMEBUFFER_UNDEFINED => "GL_FRAMEBUFFER_UNDEFINED", + gl::FRAMEBUFFER_INCOMPLETE_ATTACHMENT => "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT", + gl::FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT => "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", + gl::FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER => "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER", + gl::FRAMEBUFFER_INCOMPLETE_READ_BUFFER => "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER", + gl::FRAMEBUFFER_UNSUPPORTED => "GL_FRAMEBUFFER_UNSUPPORTED", + gl::FRAMEBUFFER_INCOMPLETE_MULTISAMPLE => "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE", + gl::FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS => "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS", - gl::FRAMEBUFFER_COMPLETE => "GL_FRAMEBUFFER_COMPLETE", - //gl::FRAMEBUFFER_INCOMPLETE_DIMENSIONS => "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS", - _ => "unknown" - }; + gl::FRAMEBUFFER_COMPLETE => "GL_FRAMEBUFFER_COMPLETE", + //gl::FRAMEBUFFER_INCOMPLETE_DIMENSIONS => "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS", + _ => "unknown" + }; - if status != gl::FRAMEBUFFER_COMPLETE { - println!("glBindFramebuffer failed, glCheckFrameBufferStatus(GL_FRAMEBUFFER) = {} {}", status, s); - //panic!("glBindFramebuffer failed, glCheckFrameBufferStatus(GL_FRAMEBUFFER) = {} {}", status, s); + if status != gl::FRAMEBUFFER_COMPLETE { + println!("glBindFramebuffer failed, glCheckFrameBufferStatus(GL_FRAMEBUFFER) = {} {}", status, s); + //panic!("glBindFramebuffer failed, glCheckFrameBufferStatus(GL_FRAMEBUFFER) = {} {}", status, s); + } } - } impl Framebuffer { @@ -856,21 +857,18 @@ impl Framebuffer { pub fn bind(&self) { unsafe { gl::BindFramebuffer(gl::FRAMEBUFFER, self.0); - check_framebuffer_status(); } } pub fn bind_read(&self) { unsafe { gl::BindFramebuffer(gl::READ_FRAMEBUFFER, self.0); - check_framebuffer_status(); } } pub fn bind_draw(&self) { unsafe { gl::BindFramebuffer(gl::DRAW_FRAMEBUFFER, self.0); - check_framebuffer_status(); } } diff --git a/src/render/mod.rs b/src/render/mod.rs index fe71b80..66e316d 100644 --- a/src/render/mod.rs +++ b/src/render/mod.rs @@ -705,7 +705,7 @@ impl TransInfo { gl::bind_frag_data_location(&chunk_shader.program, 0, "accum"); gl::bind_frag_data_location(&chunk_shader.program, 1, "revealage"); gl::draw_buffers(&[gl::COLOR_ATTACHMENT_0, gl::COLOR_ATTACHMENT_1]); - + gl::check_framebuffer_status(); let main = gl::Framebuffer::new(); main.bind(); @@ -719,6 +719,7 @@ impl TransInfo { fb_depth.bind(gl::TEXTURE_2D_MULTISAMPLE); fb_depth.image_2d_sample(gl::TEXTURE_2D_MULTISAMPLE, NUM_SAMPLES, width, height, gl::DEPTH_COMPONENT24, false); main.texture_2d(gl::DEPTH_ATTACHMENT, gl::TEXTURE_2D_MULTISAMPLE, &fb_depth, 0); + gl::check_framebuffer_status(); gl::unbind_framebuffer();