diff --git a/src/Magnum/AbstractFramebuffer.cpp b/src/Magnum/AbstractFramebuffer.cpp index 04016645b..eef8e6a48 100644 --- a/src/Magnum/AbstractFramebuffer.cpp +++ b/src/Magnum/AbstractFramebuffer.cpp @@ -221,13 +221,15 @@ void AbstractFramebuffer::setViewportInternal() { glViewport(_viewport.left(), _viewport.bottom(), _viewport.sizeX(), _viewport.sizeY()); } -void AbstractFramebuffer::clear(FramebufferClearMask mask) { +AbstractFramebuffer& AbstractFramebuffer::clear(FramebufferClearMask mask) { #ifndef MAGNUM_TARGET_GLES2 bindInternal(FramebufferTarget::Draw); #else bindInternal(Context::current()->state().framebuffer->drawTarget); #endif glClear(GLbitfield(mask)); + + return *this; } void AbstractFramebuffer::read(const Range2Di& rectangle, Image2D& image) { diff --git a/src/Magnum/AbstractFramebuffer.h b/src/Magnum/AbstractFramebuffer.h index 40cc4da39..279283e37 100644 --- a/src/Magnum/AbstractFramebuffer.h +++ b/src/Magnum/AbstractFramebuffer.h @@ -284,6 +284,7 @@ class MAGNUM_EXPORT AbstractFramebuffer { /** * @brief Clear specified buffers in framebuffer * @param mask Which buffers to clear + * @return Reference to self (for method chaining) * * To improve performance you can also use * @ref DefaultFramebuffer::invalidate() / @ref Framebuffer::invalidate() @@ -293,7 +294,7 @@ class MAGNUM_EXPORT AbstractFramebuffer { * @ref Renderer::setClearStencil(), @fn_gl{BindFramebuffer}, * @fn_gl{Clear} */ - void clear(FramebufferClearMask mask); + AbstractFramebuffer& clear(FramebufferClearMask mask); /** * @brief Read block of pixels from framebuffer to image diff --git a/src/Magnum/DefaultFramebuffer.h b/src/Magnum/DefaultFramebuffer.h index 2ded32cfd..55186f18a 100644 --- a/src/Magnum/DefaultFramebuffer.h +++ b/src/Magnum/DefaultFramebuffer.h @@ -432,6 +432,10 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer { AbstractFramebuffer::setViewport(rectangle); return *this; } + DefaultFramebuffer& clear(FramebufferClearMask mask) { + AbstractFramebuffer::clear(mask); + return *this; + } #endif private: diff --git a/src/Magnum/Framebuffer.h b/src/Magnum/Framebuffer.h index b2af3ec11..1b227f0c6 100644 --- a/src/Magnum/Framebuffer.h +++ b/src/Magnum/Framebuffer.h @@ -650,6 +650,10 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje AbstractFramebuffer::setViewport(rectangle); return *this; } + Framebuffer& clear(FramebufferClearMask mask) { + AbstractFramebuffer::clear(mask); + return *this; + } #endif private: