if(!fbo)
{
fbo = new Framebuffer;
+
color_buf = new Texture2D;
color_buf->set_min_filter(NEAREST);
color_buf->set_mag_filter(NEAREST);
- color_buf->storage((hdr ? RGB16F : RGB), width, height, 0);
- color_buf->image(0, RGB, UNSIGNED_BYTE, 0);
+ color_buf->storage((hdr ? RGB16F : RGB), width, height);
fbo->attach(COLOR_ATTACHMENT0, *color_buf, 0);
- depth_buf = new Renderbuffer;
+
+ depth_buf = new Texture2D;
+ depth_buf->set_min_filter(NEAREST);
+ depth_buf->set_mag_filter(NEAREST);
depth_buf->storage(DEPTH_COMPONENT, width, height);
- fbo->attach(DEPTH_ATTACHMENT, *depth_buf);
+ fbo->attach(DEPTH_ATTACHMENT, *depth_buf, 0);
}
}
// XXX Need two color buffer textures to handle multiple post-processors correctly
for(vector<PostProcessor *>::const_iterator i=postproc.begin(); i!=postproc.end(); ++i)
- (*i)->render(*color_buf);
+ (*i)->render(*color_buf, *depth_buf);
}