Check framebuffer status later not immediately after binding
No errors https://github.com/iceiix/steven/issues/5
This commit is contained in:
parent
3a32710b17
commit
84c682b177
|
@ -819,29 +819,30 @@ pub const DEPTH_ATTACHMENT: Attachment = gl::DEPTH_ATTACHMENT;
|
||||||
|
|
||||||
pub struct Framebuffer(u32);
|
pub struct Framebuffer(u32);
|
||||||
|
|
||||||
unsafe fn check_framebuffer_status() {
|
pub fn check_framebuffer_status() {
|
||||||
let status = gl::CheckFramebufferStatus(gl::FRAMEBUFFER);
|
unsafe {
|
||||||
let s =
|
let status = gl::CheckFramebufferStatus(gl::FRAMEBUFFER);
|
||||||
match status {
|
let s =
|
||||||
gl::FRAMEBUFFER_UNDEFINED => "GL_FRAMEBUFFER_UNDEFINED",
|
match status {
|
||||||
gl::FRAMEBUFFER_INCOMPLETE_ATTACHMENT => "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT",
|
gl::FRAMEBUFFER_UNDEFINED => "GL_FRAMEBUFFER_UNDEFINED",
|
||||||
gl::FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT => "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",
|
gl::FRAMEBUFFER_INCOMPLETE_ATTACHMENT => "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT",
|
||||||
gl::FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER => "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER",
|
gl::FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT => "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",
|
||||||
gl::FRAMEBUFFER_INCOMPLETE_READ_BUFFER => "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER",
|
gl::FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER => "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER",
|
||||||
gl::FRAMEBUFFER_UNSUPPORTED => "GL_FRAMEBUFFER_UNSUPPORTED",
|
gl::FRAMEBUFFER_INCOMPLETE_READ_BUFFER => "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER",
|
||||||
gl::FRAMEBUFFER_INCOMPLETE_MULTISAMPLE => "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",
|
gl::FRAMEBUFFER_UNSUPPORTED => "GL_FRAMEBUFFER_UNSUPPORTED",
|
||||||
gl::FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS => "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS",
|
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_COMPLETE => "GL_FRAMEBUFFER_COMPLETE",
|
||||||
//gl::FRAMEBUFFER_INCOMPLETE_DIMENSIONS => "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS",
|
//gl::FRAMEBUFFER_INCOMPLETE_DIMENSIONS => "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS",
|
||||||
_ => "unknown"
|
_ => "unknown"
|
||||||
};
|
};
|
||||||
|
|
||||||
if status != gl::FRAMEBUFFER_COMPLETE {
|
if status != gl::FRAMEBUFFER_COMPLETE {
|
||||||
println!("glBindFramebuffer failed, glCheckFrameBufferStatus(GL_FRAMEBUFFER) = {} {}", status, s);
|
println!("glBindFramebuffer failed, glCheckFrameBufferStatus(GL_FRAMEBUFFER) = {} {}", status, s);
|
||||||
//panic!("glBindFramebuffer failed, glCheckFrameBufferStatus(GL_FRAMEBUFFER) = {} {}", status, s);
|
//panic!("glBindFramebuffer failed, glCheckFrameBufferStatus(GL_FRAMEBUFFER) = {} {}", status, s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Framebuffer {
|
impl Framebuffer {
|
||||||
|
@ -856,21 +857,18 @@ impl Framebuffer {
|
||||||
pub fn bind(&self) {
|
pub fn bind(&self) {
|
||||||
unsafe {
|
unsafe {
|
||||||
gl::BindFramebuffer(gl::FRAMEBUFFER, self.0);
|
gl::BindFramebuffer(gl::FRAMEBUFFER, self.0);
|
||||||
check_framebuffer_status();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn bind_read(&self) {
|
pub fn bind_read(&self) {
|
||||||
unsafe {
|
unsafe {
|
||||||
gl::BindFramebuffer(gl::READ_FRAMEBUFFER, self.0);
|
gl::BindFramebuffer(gl::READ_FRAMEBUFFER, self.0);
|
||||||
check_framebuffer_status();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn bind_draw(&self) {
|
pub fn bind_draw(&self) {
|
||||||
unsafe {
|
unsafe {
|
||||||
gl::BindFramebuffer(gl::DRAW_FRAMEBUFFER, self.0);
|
gl::BindFramebuffer(gl::DRAW_FRAMEBUFFER, self.0);
|
||||||
check_framebuffer_status();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -705,7 +705,7 @@ impl TransInfo {
|
||||||
gl::bind_frag_data_location(&chunk_shader.program, 0, "accum");
|
gl::bind_frag_data_location(&chunk_shader.program, 0, "accum");
|
||||||
gl::bind_frag_data_location(&chunk_shader.program, 1, "revealage");
|
gl::bind_frag_data_location(&chunk_shader.program, 1, "revealage");
|
||||||
gl::draw_buffers(&[gl::COLOR_ATTACHMENT_0, gl::COLOR_ATTACHMENT_1]);
|
gl::draw_buffers(&[gl::COLOR_ATTACHMENT_0, gl::COLOR_ATTACHMENT_1]);
|
||||||
|
gl::check_framebuffer_status();
|
||||||
|
|
||||||
let main = gl::Framebuffer::new();
|
let main = gl::Framebuffer::new();
|
||||||
main.bind();
|
main.bind();
|
||||||
|
@ -719,6 +719,7 @@ impl TransInfo {
|
||||||
fb_depth.bind(gl::TEXTURE_2D_MULTISAMPLE);
|
fb_depth.bind(gl::TEXTURE_2D_MULTISAMPLE);
|
||||||
fb_depth.image_2d_sample(gl::TEXTURE_2D_MULTISAMPLE, NUM_SAMPLES, width, height, gl::DEPTH_COMPONENT24, false);
|
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);
|
main.texture_2d(gl::DEPTH_ATTACHMENT, gl::TEXTURE_2D_MULTISAMPLE, &fb_depth, 0);
|
||||||
|
gl::check_framebuffer_status();
|
||||||
|
|
||||||
gl::unbind_framebuffer();
|
gl::unbind_framebuffer();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue