From b203924355d63604f71d0cb907cff51cf4629c5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 21 Nov 2019 18:37:36 +0100 Subject: [PATCH] GCC 4.8, happy to see you're still around, causing problems. --- src/Magnum/Primitives/Implementation/Spheroid.cpp | 15 +++++++++------ src/Magnum/Trade/Test/MeshData2DTest.cpp | 12 ++++++++---- src/Magnum/Trade/Test/MeshData3DTest.cpp | 12 ++++++++---- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/Magnum/Primitives/Implementation/Spheroid.cpp b/src/Magnum/Primitives/Implementation/Spheroid.cpp index a1c89a869..8c8d31e39 100644 --- a/src/Magnum/Primitives/Implementation/Spheroid.cpp +++ b/src/Magnum/Primitives/Implementation/Spheroid.cpp @@ -229,17 +229,20 @@ Trade::MeshData Spheroid::finalize() { auto typedVertices = reinterpret_cast(_vertexData.data()); Trade::MeshAttributeData positions{Trade::MeshAttribute::Position, - Containers::stridedArrayView(_vertexData, &typedVertices[0].position, - size, stride)}; + /* GCC 4.8 needs the arrayView() */ + Containers::stridedArrayView(Containers::arrayView(_vertexData), + &typedVertices[0].position, size, stride)}; Trade::MeshAttributeData normals{Trade::MeshAttribute::Normal, - Containers::stridedArrayView(_vertexData, &typedVertices[0].normal, - size, stride)}; + /* GCC 4.8 needs the arrayView() */ + Containers::stridedArrayView(Containers::arrayView(_vertexData), + &typedVertices[0].normal, size, stride)}; Containers::Array attributes; if(_textureCoords == TextureCoords::Generate) { Trade::MeshAttributeData textureCoords{Trade::MeshAttribute::TextureCoordinates, - Containers::stridedArrayView(_vertexData, &typedVertices[0].textureCoords, - size, stride)}; + /* GCC 4.8 needs the arrayView() */ + Containers::stridedArrayView(Containers::arrayView(_vertexData), + &typedVertices[0].textureCoords, size, stride)}; attributes = Containers::Array{Containers::InPlaceInit, {positions, normals, textureCoords}}; } else { attributes = Containers::Array{Containers::InPlaceInit, {positions, normals}}; diff --git a/src/Magnum/Trade/Test/MeshData2DTest.cpp b/src/Magnum/Trade/Test/MeshData2DTest.cpp index dc1def1c7..5cf12e91d 100644 --- a/src/Magnum/Trade/Test/MeshData2DTest.cpp +++ b/src/Magnum/Trade/Test/MeshData2DTest.cpp @@ -83,7 +83,9 @@ struct { {{0xff98ab_rgbf, 0xff3366_rgbf}}, &State}}, {"from MeshData", - MeshData{MeshPrimitive::Lines, {}, Indices, MeshIndexData{Indices}, {}, Vertices, { + /* GCC 4.8 needs the explicit MeshData3D conversion otherwise it tries + to use a deleted copy constructor */ + MeshData2D{MeshData{MeshPrimitive::Lines, {}, Indices, MeshIndexData{Indices}, {}, Vertices, { MeshAttributeData{MeshAttribute::Position, Containers::StridedArrayView1D{Vertices, &Vertices[0].position1, 2, sizeof(Vertex)}}, MeshAttributeData{MeshAttribute::Position, @@ -96,15 +98,17 @@ struct { Containers::StridedArrayView1D{Vertices, &Vertices[0].textureCoords3, 2, sizeof(Vertex)}}, MeshAttributeData{MeshAttribute::Color, Containers::StridedArrayView1D{Vertices, &Vertices[0].color, 2, sizeof(Vertex)}}, - }, &State}, - MeshData{MeshPrimitive::Lines, {}, Vertices, { + }, &State}}, + /* GCC 4.8 needs the explicit MeshData3D conversion otherwise it tries + to use a deleted copy constructor */ + MeshData2D{MeshData{MeshPrimitive::Lines, {}, Vertices, { MeshAttributeData{MeshAttribute::Position, Containers::StridedArrayView1D{Vertices, &Vertices[0].position1, 2, sizeof(Vertex)}}, MeshAttributeData{MeshAttribute::TextureCoordinates, Containers::StridedArrayView1D{Vertices, &Vertices[0].textureCoords1, 2, sizeof(Vertex)}}, MeshAttributeData{MeshAttribute::Color, Containers::StridedArrayView1D{Vertices, &Vertices[0].color, 2, sizeof(Vertex)}}, - }, &State} + }, &State}} } }; diff --git a/src/Magnum/Trade/Test/MeshData3DTest.cpp b/src/Magnum/Trade/Test/MeshData3DTest.cpp index e7ab2dd11..0965f94c3 100644 --- a/src/Magnum/Trade/Test/MeshData3DTest.cpp +++ b/src/Magnum/Trade/Test/MeshData3DTest.cpp @@ -89,7 +89,9 @@ struct { {{0xff98ab_rgbf, 0xff3366_rgbf}}, &State}}, {"from MeshData", - MeshData{MeshPrimitive::Lines, {}, Indices, MeshIndexData{Indices}, {}, Vertices, { + /* GCC 4.8 needs the explicit MeshData3D conversion otherwise it tries + to use a deleted copy constructor */ + MeshData3D{MeshData{MeshPrimitive::Lines, {}, Indices, MeshIndexData{Indices}, {}, Vertices, { MeshAttributeData{MeshAttribute::Position, Containers::StridedArrayView1D{Vertices, &Vertices[0].position1, 2, sizeof(Vertex)}}, MeshAttributeData{MeshAttribute::Position, @@ -104,8 +106,10 @@ struct { Containers::StridedArrayView1D{Vertices, &Vertices[0].textureCoords3, 2, sizeof(Vertex)}}, MeshAttributeData{MeshAttribute::Color, Containers::StridedArrayView1D{Vertices, &Vertices[0].color, 2, sizeof(Vertex)}}, - }, &State}, - MeshData{MeshPrimitive::Lines, {}, Vertices, { + }, &State}}, + /* GCC 4.8 needs the explicit MeshData3D conversion otherwise it tries + to use a deleted copy constructor */ + MeshData3D{MeshData{MeshPrimitive::Lines, {}, Vertices, { MeshAttributeData{MeshAttribute::Position, Containers::StridedArrayView1D{Vertices, &Vertices[0].position1, 2, sizeof(Vertex)}}, MeshAttributeData{MeshAttribute::Normal, @@ -114,7 +118,7 @@ struct { Containers::StridedArrayView1D{Vertices, &Vertices[0].textureCoords1, 2, sizeof(Vertex)}}, MeshAttributeData{MeshAttribute::Color, Containers::StridedArrayView1D{Vertices, &Vertices[0].color, 2, sizeof(Vertex)}}, - }, &State} + }, &State}} } };