diff --git a/src/Magnum/Shaders/DistanceFieldVectorGL.h b/src/Magnum/Shaders/DistanceFieldVectorGL.h index d40e4b21a..8531db0fe 100644 --- a/src/Magnum/Shaders/DistanceFieldVectorGL.h +++ b/src/Magnum/Shaders/DistanceFieldVectorGL.h @@ -613,52 +613,13 @@ template class MAGNUM_SHADERS_EXPORT DistanceFieldVector * @} */ - /* Overloads to remove WTF-factor from method chaining order */ - #ifndef DOXYGEN_GENERATING_OUTPUT - DistanceFieldVectorGL& draw(GL::Mesh& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - DistanceFieldVectorGL& draw(GL::Mesh&& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - DistanceFieldVectorGL& draw(GL::MeshView& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - DistanceFieldVectorGL& draw(GL::MeshView&& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - DistanceFieldVectorGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - #ifndef CORRADE_TARGET_32BIT - DistanceFieldVectorGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - DistanceFieldVectorGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, std::nullptr_t) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, nullptr)); - } - #endif - DistanceFieldVectorGL& draw(Containers::ArrayView> meshes) { - return static_cast&>(GL::AbstractShaderProgram::draw(meshes)); - } - DistanceFieldVectorGL& draw(std::initializer_list> meshes) { - return static_cast&>(GL::AbstractShaderProgram::draw(meshes)); - } - #endif + MAGNUM_GL_ABSTRACTSHADERPROGRAM_SUBCLASS_DRAW_IMPLEMENTATION(DistanceFieldVectorGL) private: /* Creates the GL shader program object but does nothing else. Internal, used by compile(). */ explicit DistanceFieldVectorGL(NoInitT); - /* Prevent accidentally calling irrelevant functions */ - #ifndef MAGNUM_TARGET_GLES - using GL::AbstractShaderProgram::drawTransformFeedback; - #endif - #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) - using GL::AbstractShaderProgram::dispatchCompute; - #endif - Flags _flags; #ifndef MAGNUM_TARGET_GLES2 UnsignedInt _materialCount{}, _drawCount{}; diff --git a/src/Magnum/Shaders/FlatGL.h b/src/Magnum/Shaders/FlatGL.h index 01a5e8964..74c58f365 100644 --- a/src/Magnum/Shaders/FlatGL.h +++ b/src/Magnum/Shaders/FlatGL.h @@ -1022,52 +1022,13 @@ template class MAGNUM_SHADERS_EXPORT FlatGL: public GL:: * @} */ - /* Overloads to remove WTF-factor from method chaining order */ - #ifndef DOXYGEN_GENERATING_OUTPUT - FlatGL& draw(GL::Mesh& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - FlatGL& draw(GL::Mesh&& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - FlatGL& draw(GL::MeshView& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - FlatGL& draw(GL::MeshView&& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - FlatGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - #ifndef CORRADE_TARGET_32BIT - FlatGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - FlatGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, std::nullptr_t) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, nullptr)); - } - #endif - FlatGL& draw(Containers::ArrayView> meshes) { - return static_cast&>(GL::AbstractShaderProgram::draw(meshes)); - } - FlatGL& draw(std::initializer_list> meshes) { - return static_cast&>(GL::AbstractShaderProgram::draw(meshes)); - } - #endif + MAGNUM_GL_ABSTRACTSHADERPROGRAM_SUBCLASS_DRAW_IMPLEMENTATION(FlatGL) private: /* Creates the GL shader program object but does nothing else. Internal, used by compile(). */ explicit FlatGL(NoInitT); - /* Prevent accidentally calling irrelevant functions */ - #ifndef MAGNUM_TARGET_GLES - using GL::AbstractShaderProgram::drawTransformFeedback; - #endif - #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) - using GL::AbstractShaderProgram::dispatchCompute; - #endif - Flags _flags; #ifndef MAGNUM_TARGET_GLES2 UnsignedInt _materialCount{}, _drawCount{}; diff --git a/src/Magnum/Shaders/MeshVisualizerGL.h b/src/Magnum/Shaders/MeshVisualizerGL.h index 82d57599a..8ad728b5e 100644 --- a/src/Magnum/Shaders/MeshVisualizerGL.h +++ b/src/Magnum/Shaders/MeshVisualizerGL.h @@ -105,14 +105,6 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizerGLBase: public GL::AbstractShaderProgr MeshVisualizerGLBase& bindMaterialBuffer(GL::Buffer& buffer, GLintptr offset, GLsizeiptr size); #endif - /* Prevent accidentally calling irrelevant functions */ - #ifndef MAGNUM_TARGET_GLES - using GL::AbstractShaderProgram::drawTransformFeedback; - #endif - #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) - using GL::AbstractShaderProgram::dispatchCompute; - #endif - FlagsBase _flags; #ifndef MAGNUM_TARGET_GLES2 UnsignedInt _materialCount{}, _drawCount{}; @@ -876,38 +868,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizerGL2D: public Implementation::MeshVisua * @} */ - /* Overloads to remove WTF-factor from method chaining order */ - #ifndef DOXYGEN_GENERATING_OUTPUT - MeshVisualizerGL2D& draw(GL::Mesh& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - MeshVisualizerGL2D& draw(GL::Mesh&& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - MeshVisualizerGL2D& draw(GL::MeshView& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - MeshVisualizerGL2D& draw(GL::MeshView&& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - MeshVisualizerGL2D& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - #ifndef CORRADE_TARGET_32BIT - MeshVisualizerGL2D& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - MeshVisualizerGL2D& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, std::nullptr_t) { - return static_cast(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, nullptr)); - } - #endif - MeshVisualizerGL2D& draw(Containers::ArrayView> meshes) { - return static_cast(GL::AbstractShaderProgram::draw(meshes)); - } - MeshVisualizerGL2D& draw(std::initializer_list> meshes) { - return static_cast(GL::AbstractShaderProgram::draw(meshes)); - } - #endif + MAGNUM_GL_ABSTRACTSHADERPROGRAM_SUBCLASS_DRAW_IMPLEMENTATION(MeshVisualizerGL2D) private: /* Creates the GL shader program object but does nothing else. @@ -2407,38 +2368,7 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizerGL3D: public Implementation::MeshVisua * @} */ - /* Overloads to remove WTF-factor from method chaining order */ - #ifndef DOXYGEN_GENERATING_OUTPUT - MeshVisualizerGL3D& draw(GL::Mesh& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - MeshVisualizerGL3D& draw(GL::Mesh&& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - MeshVisualizerGL3D& draw(GL::MeshView& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - MeshVisualizerGL3D& draw(GL::MeshView&& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - MeshVisualizerGL3D& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - #ifndef CORRADE_TARGET_32BIT - MeshVisualizerGL3D& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - MeshVisualizerGL3D& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, std::nullptr_t) { - return static_cast(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, nullptr)); - } - #endif - MeshVisualizerGL3D& draw(Containers::ArrayView> meshes) { - return static_cast(GL::AbstractShaderProgram::draw(meshes)); - } - MeshVisualizerGL3D& draw(std::initializer_list> meshes) { - return static_cast(GL::AbstractShaderProgram::draw(meshes)); - } - #endif + MAGNUM_GL_ABSTRACTSHADERPROGRAM_SUBCLASS_DRAW_IMPLEMENTATION(MeshVisualizerGL3D) private: /* Creates the GL shader program object but does nothing else. diff --git a/src/Magnum/Shaders/PhongGL.h b/src/Magnum/Shaders/PhongGL.h index 9c0e46610..7ecf92d0c 100644 --- a/src/Magnum/Shaders/PhongGL.h +++ b/src/Magnum/Shaders/PhongGL.h @@ -1755,52 +1755,13 @@ class MAGNUM_SHADERS_EXPORT PhongGL: public GL::AbstractShaderProgram { * @} */ - /* Overloads to remove WTF-factor from method chaining order */ - #ifndef DOXYGEN_GENERATING_OUTPUT - PhongGL& draw(GL::Mesh& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - PhongGL& draw(GL::Mesh&& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - PhongGL& draw(GL::MeshView& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - PhongGL& draw(GL::MeshView&& mesh) { - return static_cast(GL::AbstractShaderProgram::draw(mesh)); - } - PhongGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - #ifndef CORRADE_TARGET_32BIT - PhongGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - PhongGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, std::nullptr_t) { - return static_cast(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, nullptr)); - } - #endif - PhongGL& draw(Containers::ArrayView> meshes) { - return static_cast(GL::AbstractShaderProgram::draw(meshes)); - } - PhongGL& draw(std::initializer_list> meshes) { - return static_cast(GL::AbstractShaderProgram::draw(meshes)); - } - #endif + MAGNUM_GL_ABSTRACTSHADERPROGRAM_SUBCLASS_DRAW_IMPLEMENTATION(PhongGL) private: /* Creates the GL shader program object but does nothing else. Internal, used by compile(). */ explicit PhongGL(NoInitT) {} - /* Prevent accidentally calling irrelevant functions */ - #ifndef MAGNUM_TARGET_GLES - using GL::AbstractShaderProgram::drawTransformFeedback; - #endif - #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) - using GL::AbstractShaderProgram::dispatchCompute; - #endif - Flags _flags; UnsignedInt _lightCount{}; #ifndef MAGNUM_TARGET_GLES2 diff --git a/src/Magnum/Shaders/VectorGL.h b/src/Magnum/Shaders/VectorGL.h index b7c8cc71d..67ec1930f 100644 --- a/src/Magnum/Shaders/VectorGL.h +++ b/src/Magnum/Shaders/VectorGL.h @@ -565,52 +565,13 @@ template class MAGNUM_SHADERS_EXPORT VectorGL: public GL * @} */ - /* Overloads to remove WTF-factor from method chaining order */ - #ifndef DOXYGEN_GENERATING_OUTPUT - VectorGL& draw(GL::Mesh& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - VectorGL& draw(GL::Mesh&& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - VectorGL& draw(GL::MeshView& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - VectorGL& draw(GL::MeshView&& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - VectorGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - #ifndef CORRADE_TARGET_32BIT - VectorGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - VectorGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, std::nullptr_t) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, nullptr)); - } - #endif - VectorGL& draw(Containers::ArrayView> meshes) { - return static_cast&>(GL::AbstractShaderProgram::draw(meshes)); - } - VectorGL& draw(std::initializer_list> meshes) { - return static_cast&>(GL::AbstractShaderProgram::draw(meshes)); - } - #endif + MAGNUM_GL_ABSTRACTSHADERPROGRAM_SUBCLASS_DRAW_IMPLEMENTATION(VectorGL) private: /* Creates the GL shader program object but does nothing else. Internal, used by compile(). */ explicit VectorGL(NoInitT); - /* Prevent accidentally calling irrelevant functions */ - #ifndef MAGNUM_TARGET_GLES - using GL::AbstractShaderProgram::drawTransformFeedback; - #endif - #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) - using GL::AbstractShaderProgram::dispatchCompute; - #endif - Flags _flags; #ifndef MAGNUM_TARGET_GLES2 UnsignedInt _materialCount{}, _drawCount{}; diff --git a/src/Magnum/Shaders/VertexColorGL.h b/src/Magnum/Shaders/VertexColorGL.h index d6b4ac6ee..a6378796e 100644 --- a/src/Magnum/Shaders/VertexColorGL.h +++ b/src/Magnum/Shaders/VertexColorGL.h @@ -417,52 +417,13 @@ template class MAGNUM_SHADERS_EXPORT VertexColorGL: publ */ #endif - /* Overloads to remove WTF-factor from method chaining order */ - #ifndef DOXYGEN_GENERATING_OUTPUT - VertexColorGL& draw(GL::Mesh& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - VertexColorGL& draw(GL::Mesh&& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - VertexColorGL& draw(GL::MeshView& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - VertexColorGL& draw(GL::MeshView&& mesh) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh)); - } - VertexColorGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - #ifndef CORRADE_TARGET_32BIT - VertexColorGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, const Containers::StridedArrayView1D& indexOffsets) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, indexOffsets)); - } - VertexColorGL& draw(GL::Mesh& mesh, const Containers::StridedArrayView1D& counts, const Containers::StridedArrayView1D& vertexOffsets, std::nullptr_t) { - return static_cast&>(GL::AbstractShaderProgram::draw(mesh, counts, vertexOffsets, nullptr)); - } - #endif - VertexColorGL& draw(Containers::ArrayView> meshes) { - return static_cast&>(GL::AbstractShaderProgram::draw(meshes)); - } - VertexColorGL& draw(std::initializer_list> meshes) { - return static_cast&>(GL::AbstractShaderProgram::draw(meshes)); - } - #endif + MAGNUM_GL_ABSTRACTSHADERPROGRAM_SUBCLASS_DRAW_IMPLEMENTATION(VertexColorGL) private: /* Creates the GL shader program object but does nothing else. Internal, used by compile(). */ explicit VertexColorGL(NoInitT); - /* Prevent accidentally calling irrelevant functions */ - #ifndef MAGNUM_TARGET_GLES - using GL::AbstractShaderProgram::drawTransformFeedback; - #endif - #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) - using GL::AbstractShaderProgram::dispatchCompute; - #endif - Flags _flags; #ifndef MAGNUM_TARGET_GLES2 UnsignedInt _drawCount{};