diff --git a/src/Magnum/GL/AbstractTexture.cpp b/src/Magnum/GL/AbstractTexture.cpp index 494159b40..fa3a645ef 100644 --- a/src/Magnum/GL/AbstractTexture.cpp +++ b/src/Magnum/GL/AbstractTexture.cpp @@ -156,7 +156,7 @@ void AbstractTexture::unbind(const Int firstTextureUnit, const std::size_t count } /** @todoc const std::initializer_list makes Doxygen grumpy */ -void AbstractTexture::bind(const Int firstTextureUnit, std::initializer_list textures) { +void AbstractTexture::bind(const Int firstTextureUnit, Containers::ArrayView textures) { /* State tracker is updated in the implementations */ Context::current().state().texture->bindMultiImplementation(firstTextureUnit, {textures.begin(), textures.size()}); } @@ -289,7 +289,7 @@ void AbstractTexture::unbindImage(const Int imageUnit) { #ifndef MAGNUM_TARGET_GLES /** @todoc const Containers::ArrayView makes Doxygen grumpy */ -void AbstractTexture::bindImagesInternal(const Int firstImageUnit, Containers::ArrayView textures) { +void AbstractTexture::bindImages(const Int firstImageUnit, Containers::ArrayView textures) { Implementation::TextureState& textureState = *Context::current().state().texture; /* Create array of IDs and also update bindings in state tracker */ diff --git a/src/Magnum/GL/AbstractTexture.h b/src/Magnum/GL/AbstractTexture.h index 42aad1de2..cfc37120c 100644 --- a/src/Magnum/GL/AbstractTexture.h +++ b/src/Magnum/GL/AbstractTexture.h @@ -244,7 +244,12 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject { * @see @ref Shader::maxCombinedTextureImageUnits(), * @fn_gl_keyword{BindTextures} */ - static void bind(Int firstTextureUnit, std::initializer_list textures); + static void bind(Int firstTextureUnit, Containers::ArrayView textures); + + /** @overload */ + static void bind(Int firstTextureUnit, std::initializer_list textures) { + AbstractTexture::bind(firstTextureUnit, Containers::arrayView(textures.begin(), textures.size())); + } #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) /** @@ -284,7 +289,7 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject { * @requires_gl Multi bind is not available in OpenGL ES and WebGL. */ static void unbindImages(Int firstImageUnit, std::size_t count) { - bindImagesInternal(firstImageUnit, {nullptr, count}); + bindImages(firstImageUnit, {nullptr, count}); } /** @@ -306,8 +311,11 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject { * @requires_gl44 Extension @gl_extension{ARB,multi_bind} * @requires_gl Multi bind is not available in OpenGL ES and WebGL. */ + static void bindImages(Int firstImageUnit, Containers::ArrayView textures); + + /** @overload */ static void bindImages(Int firstImageUnit, std::initializer_list textures) { - bindImagesInternal(firstImageUnit, {textures.begin(), textures.size()}); + bindImages(firstImageUnit, Containers::arrayView(textures.begin(), textures.size())); } #endif @@ -427,10 +435,6 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject { static Int compressedBlockDataSize(GLenum target, TextureFormat format); #endif - #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) - static void bindImagesInternal(Int firstImageUnit, Containers::ArrayView textures); - #endif - explicit AbstractTexture(GLenum target); explicit AbstractTexture(NoCreateT, GLenum target) noexcept: _target{target}, _id{0}, _flags{ObjectFlag::DeleteOnDestruction} {} explicit AbstractTexture(GLuint id, GLenum target, ObjectFlags flags) noexcept: _target{target}, _id{id}, _flags{flags} {}