From b99e7dc50e45ebb5ea697867363871dde9eefdeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 22 Feb 2023 11:36:23 +0100 Subject: [PATCH] GL: remove unneded ArrayView.h include from headers. It was needed in the times before StringView, where the setLabel() APIs had overloads taking a const char(&)[size] to avoid allocating a std::string. But that got all removed and cleaned up in bc884428f8c1d8f66ee0216c9a6a338eff31fca4 (two years ago!), yet somehow I forgot to remove these includes as well. In some cases the ArrayView was still used inside the header for delegating from std::initializer_list overloads. Those are now deinlined to not need the include anymore. The only remaining place that *needs* an ArrayView include is Buffer.h, where it accepts an initializer_list. But there it's fine I think, the class is dealing with memory as well. --- src/Magnum/GL/AbstractQuery.h | 1 - src/Magnum/GL/AbstractTexture.cpp | 16 +++++++++++++--- src/Magnum/GL/AbstractTexture.h | 13 +++---------- src/Magnum/GL/Framebuffer.h | 2 -- src/Magnum/GL/Mesh.h | 1 - src/Magnum/GL/Renderbuffer.h | 1 - src/Magnum/GL/TransformFeedback.cpp | 4 ++++ src/Magnum/GL/TransformFeedback.h | 5 +---- 8 files changed, 21 insertions(+), 22 deletions(-) diff --git a/src/Magnum/GL/AbstractQuery.h b/src/Magnum/GL/AbstractQuery.h index e3fbd80c1..206b6b20a 100644 --- a/src/Magnum/GL/AbstractQuery.h +++ b/src/Magnum/GL/AbstractQuery.h @@ -30,7 +30,6 @@ */ #include /* std::swap() */ -#include #include #include "Magnum/Tags.h" diff --git a/src/Magnum/GL/AbstractTexture.cpp b/src/Magnum/GL/AbstractTexture.cpp index 56a90ab5c..dca054e07 100644 --- a/src/Magnum/GL/AbstractTexture.cpp +++ b/src/Magnum/GL/AbstractTexture.cpp @@ -154,12 +154,15 @@ void AbstractTexture::unbind(const Int firstTextureUnit, const std::size_t count Context::current().state().texture.bindMultiImplementation(firstTextureUnit, {nullptr, count}); } -/** @todoc const std::initializer_list makes Doxygen grumpy */ 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()}); } +void AbstractTexture::bind(const Int firstTextureUnit, const std::initializer_list textures) { + bind(firstTextureUnit, Containers::arrayView(textures)); +} + void AbstractTexture::bindImplementationFallback(const GLint firstTextureUnit, const Containers::ArrayView textures) { for(std::size_t i = 0; i != textures.size(); ++i) textures && textures[i] ? textures[i]->bind(firstTextureUnit + i) : unbind(firstTextureUnit + i); @@ -284,8 +287,11 @@ void AbstractTexture::unbindImage(const Int imageUnit) { } #ifndef MAGNUM_TARGET_GLES -/** @todoc const Containers::ArrayView makes Doxygen grumpy */ -void AbstractTexture::bindImages(const Int firstImageUnit, Containers::ArrayView textures) { +void AbstractTexture::unbindImages(const Int firstImageUnit, const std::size_t count) { + bindImages(firstImageUnit, {nullptr, count}); +} + +void AbstractTexture::bindImages(const Int firstImageUnit, const Containers::ArrayView textures) { Implementation::TextureState& textureState = Context::current().state().texture; /* Create array of IDs and also update bindings in state tracker */ @@ -312,6 +318,10 @@ void AbstractTexture::bindImages(const Int firstImageUnit, Containers::ArrayView /* Avoid doing the binding if there is nothing different */ if(different) glBindImageTextures(firstImageUnit, textures.size(), ids); } + +void AbstractTexture::bindImages(const Int firstImageUnit, const std::initializer_list textures) { + bindImages(firstImageUnit, Containers::arrayView(textures)); +} #endif void AbstractTexture::bindImageInternal(const Int imageUnit, const Int level, const bool layered, const Int layer, const ImageAccess access, const ImageFormat format) { diff --git a/src/Magnum/GL/AbstractTexture.h b/src/Magnum/GL/AbstractTexture.h index 8f1ae3063..5f72a7085 100644 --- a/src/Magnum/GL/AbstractTexture.h +++ b/src/Magnum/GL/AbstractTexture.h @@ -30,7 +30,6 @@ */ #include /* std::swap() */ -#include #include "Magnum/DimensionTraits.h" #include "Magnum/ImageFlags.h" @@ -252,9 +251,7 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject { 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())); - } + static void bind(Int firstTextureUnit, std::initializer_list textures); #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) /** @@ -293,9 +290,7 @@ 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 unbindImages(Int firstImageUnit, std::size_t count) { - bindImages(firstImageUnit, {nullptr, count}); - } + static void unbindImages(Int firstImageUnit, std::size_t count); /** * @brief Bind textures to given range of texture units @@ -320,9 +315,7 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject { static void bindImages(Int firstImageUnit, Containers::ArrayView textures); /** @overload */ - static void bindImages(Int firstImageUnit, std::initializer_list textures) { - bindImages(firstImageUnit, Containers::arrayView(textures.begin(), textures.size())); - } + static void bindImages(Int firstImageUnit, std::initializer_list textures); #endif /** @brief Copying is not allowed */ diff --git a/src/Magnum/GL/Framebuffer.h b/src/Magnum/GL/Framebuffer.h index a77bf8216..26864e82c 100644 --- a/src/Magnum/GL/Framebuffer.h +++ b/src/Magnum/GL/Framebuffer.h @@ -30,8 +30,6 @@ * @brief Class @ref Magnum::GL::Framebuffer */ -#include - #include "Magnum/Tags.h" #include "Magnum/GL/AbstractFramebuffer.h" diff --git a/src/Magnum/GL/Mesh.h b/src/Magnum/GL/Mesh.h index a535e96e9..0086bfa5b 100644 --- a/src/Magnum/GL/Mesh.h +++ b/src/Magnum/GL/Mesh.h @@ -29,7 +29,6 @@ * @brief Class @ref Magnum::GL::Mesh, enum @ref Magnum::GL::MeshPrimitive, @ref Magnum::GL::MeshIndexType, function @ref Magnum::GL::meshPrimitive(), @ref Magnum::GL::meshIndexType() */ -#include #include #include "Magnum/Tags.h" diff --git a/src/Magnum/GL/Renderbuffer.h b/src/Magnum/GL/Renderbuffer.h index f4dd9c9ff..283287b4c 100644 --- a/src/Magnum/GL/Renderbuffer.h +++ b/src/Magnum/GL/Renderbuffer.h @@ -30,7 +30,6 @@ */ #include /* std::swap() */ -#include #include "Magnum/Tags.h" #include "Magnum/GL/AbstractObject.h" diff --git a/src/Magnum/GL/TransformFeedback.cpp b/src/Magnum/GL/TransformFeedback.cpp index b063bb1e7..d0b07147b 100644 --- a/src/Magnum/GL/TransformFeedback.cpp +++ b/src/Magnum/GL/TransformFeedback.cpp @@ -223,6 +223,10 @@ TransformFeedback& TransformFeedback::attachBuffers(const UnsignedInt firstIndex return *this; } +TransformFeedback& TransformFeedback::attachBuffers(const UnsignedInt firstIndex, const std::initializer_list buffers) { + return attachBuffers(firstIndex, Containers::arrayView(buffers)); +} + void TransformFeedback::attachImplementationFallback(const GLuint firstIndex, Containers::ArrayView> buffers) { bindInternal(); Buffer::bind(Buffer::Target(GL_TRANSFORM_FEEDBACK_BUFFER), firstIndex, buffers); diff --git a/src/Magnum/GL/TransformFeedback.h b/src/Magnum/GL/TransformFeedback.h index 17144c08b..c08fcef1b 100644 --- a/src/Magnum/GL/TransformFeedback.h +++ b/src/Magnum/GL/TransformFeedback.h @@ -33,7 +33,6 @@ #endif #include -#include #include "Magnum/Tags.h" #include "Magnum/GL/AbstractObject.h" @@ -375,9 +374,7 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject { TransformFeedback& attachBuffers(UnsignedInt firstIndex, Containers::ArrayView buffers); /** @overload */ - TransformFeedback& attachBuffers(UnsignedInt firstIndex, std::initializer_list buffers) { - return attachBuffers(firstIndex, Containers::arrayView(buffers)); - } + TransformFeedback& attachBuffers(UnsignedInt firstIndex, std::initializer_list buffers); /** * @brief Begin transform feedback