glDeleteFramebuffers(1, &id);
}
-FrameFormat OpenGLFramebuffer::get_system_format()
+void OpenGLFramebuffer::set_system_format(const FrameFormat &fmt)
{
- FrameFormat format;
-
- if(EXT_framebuffer_object)
- {
- int value;
- glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_BACK, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &value);
- if(value==GL_NONE)
- glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_FRONT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &value);
- if(value!=GL_NONE)
- format = (format,COLOR_ATTACHMENT);
-
- glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &value);
- if(value!=GL_NONE)
- format = (format,DEPTH_ATTACHMENT);
-
- glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_STENCIL, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &value);
- if(value!=GL_NONE)
- format = (format,STENCIL_ATTACHMENT);
- }
-
- return format;
-}
-
-void OpenGLFramebuffer::get_system_size(unsigned &width, unsigned &height)
-{
- int view[4];
- glGetIntegerv(GL_VIEWPORT, view);
- width = view[2];
- height = view[3];
+ static_cast<Framebuffer *>(this)->format = fmt;
}
bool OpenGLFramebuffer::is_format_supported(const FrameFormat &fmt)
static Require _req(ARB_geometry_shader4);
}
+void OpenGLFramebuffer::resize_system(unsigned w, unsigned h)
+{
+ Framebuffer *self = static_cast<Framebuffer *>(this);
+ self->width = w;
+ self->height = h;
+}
+
void OpenGLFramebuffer::update(unsigned mask) const
{
const FrameFormat &format = static_cast<const Framebuffer *>(this)->format;