X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=inline;f=source%2Fframebuffer.cpp;h=a0fcbc474203c5588d04e410bf4d0975c49fa983;hb=483f28cfaff846f74fd49cb73b9f45fe843011fe;hp=77ac21be6b0e6ef76da3928247b54b2c69074c5b;hpb=c4cacaf8f9225e006e6bb35f81eb6c2f78602bdc;p=libs%2Fgl.git diff --git a/source/framebuffer.cpp b/source/framebuffer.cpp index 77ac21be..a0fcbc47 100644 --- a/source/framebuffer.cpp +++ b/source/framebuffer.cpp @@ -62,7 +62,10 @@ void Framebuffer::update_attachment(unsigned mask) const if(attch.type==GL_RENDERBUFFER_EXT) glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, attch.attachment, GL_RENDERBUFFER_EXT, attch.rbuf->get_id()); else if(attch.type==GL_TEXTURE_2D) + { + static_cast(attch.tex)->allocate(attch.level); glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, attch.attachment, attch.type, attch.tex->get_id(), attch.level); + } else glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, attch.attachment, 0, 0); } @@ -113,7 +116,7 @@ void Framebuffer::attach(FramebufferAttachment attch, Renderbuffer &rbuf) check_size(); } -void Framebuffer::attach(FramebufferAttachment attch, Texture2D &tex, int level) +void Framebuffer::attach(FramebufferAttachment attch, Texture2D &tex, unsigned level) { if(!id) throw InvalidState("Can't attach to system framebuffer"); @@ -203,7 +206,7 @@ void Framebuffer::Attachment::set(Renderbuffer &r) level = 0; } -void Framebuffer::Attachment::set(Texture &t, int l) +void Framebuffer::Attachment::set(Texture &t, unsigned l) { type = t.get_target(); tex = &t;