X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Frenderbuffer.cpp;h=6851329bc347140400a366b06e803f38f7ae58b3;hb=94969468a611b0d968021479b60e3f039e348c85;hp=9af18daec9f1082ccd54c6e432e33a77478e9ed7;hpb=1863f17c5c5563be8492d7f01e5c613a740ea1e9;p=libs%2Fgl.git diff --git a/source/core/renderbuffer.cpp b/source/core/renderbuffer.cpp index 9af18dae..6851329b 100644 --- a/source/core/renderbuffer.cpp +++ b/source/core/renderbuffer.cpp @@ -2,7 +2,7 @@ #include #include #include -#include "misc.h" +#include "deviceinfo.h" #include "renderbuffer.h" using namespace std; @@ -34,15 +34,15 @@ void Renderbuffer::storage(PixelFormat fmt, unsigned wd, unsigned ht) glNamedRenderbufferStorage(id, fmt, width, height); else { - BindRestore _bind(this); + glBindRenderbuffer(GL_RENDERBUFFER, id); glRenderbufferStorage(GL_RENDERBUFFER, fmt, width, height); + glBindRenderbuffer(GL_RENDERBUFFER, 0); } } unsigned Renderbuffer::get_max_samples() { - static unsigned max_samples = (EXT_framebuffer_multisample ? get_i(GL_MAX_SAMPLES) : 0); - return max_samples; + return Limits::get_global().max_samples; } void Renderbuffer::storage_multisample(unsigned samples, PixelFormat fmt, unsigned wd, unsigned ht) @@ -51,7 +51,7 @@ void Renderbuffer::storage_multisample(unsigned samples, PixelFormat fmt, unsign return storage(fmt, wd, ht); static Require _req(EXT_framebuffer_multisample); - if(samples>get_max_samples()) + if(samples>Limits::get_global().max_samples) throw out_of_range("Renderbuffer::storage_multisample"); require_pixelformat(fmt); @@ -62,21 +62,10 @@ void Renderbuffer::storage_multisample(unsigned samples, PixelFormat fmt, unsign glNamedRenderbufferStorageMultisample(id, samples, fmt, width, height); else { - BindRestore _bind(this); - glRenderbufferStorageMultisample(GL_RENDERBUFFER, samples, fmt, width, height); - } -} - -void Renderbuffer::bind() const -{ - if(set_current(this)) glBindRenderbuffer(GL_RENDERBUFFER, id); -} - -void Renderbuffer::unbind() -{ - if(set_current(0)) + glRenderbufferStorageMultisample(GL_RENDERBUFFER, samples, fmt, width, height); glBindRenderbuffer(GL_RENDERBUFFER, 0); + } } void Renderbuffer::set_debug_name(const string &name)