summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2016-12-20 15:04:22 -0200
committerThiago Marcos P. Santos <thiago@mapbox.com>2017-01-24 11:36:59 +0200
commit9ac54eecbacbc7d39026656c8558f317b99c57ed (patch)
treebc2612ee7e4748987c5c223f5a14f12f398e1e62 /src
parent3e2fc894f73e5750ad365d7ca3563d535928a17b (diff)
downloadqtlocation-mapboxgl-9ac54eecbacbc7d39026656c8558f317b99c57ed.tar.gz
[gcc4.9] Only do bracket initialization where GCC4.9 can handle it
GCC 4.9 cannot do bracket initialization when one of the attributes already has a default value.
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/annotation/fill_annotation_impl.cpp2
-rw-r--r--src/mbgl/annotation/line_annotation_impl.cpp2
-rw-r--r--src/mbgl/annotation/shape_annotation_impl.cpp7
-rw-r--r--src/mbgl/gl/context.hpp4
-rw-r--r--src/mbgl/gl/texture.hpp4
-rw-r--r--src/mbgl/gl/uniform.hpp4
-rw-r--r--src/mbgl/sprite/sprite_atlas.cpp10
-rw-r--r--src/mbgl/sprite/sprite_atlas.hpp1
-rw-r--r--src/mbgl/style/property_parsing.cpp6
-rw-r--r--src/mbgl/tile/geometry_tile_data.cpp5
10 files changed, 34 insertions, 11 deletions
diff --git a/src/mbgl/annotation/fill_annotation_impl.cpp b/src/mbgl/annotation/fill_annotation_impl.cpp
index 3e91524e86..061d9044f8 100644
--- a/src/mbgl/annotation/fill_annotation_impl.cpp
+++ b/src/mbgl/annotation/fill_annotation_impl.cpp
@@ -9,7 +9,7 @@ using namespace style;
FillAnnotationImpl::FillAnnotationImpl(AnnotationID id_, FillAnnotation annotation_, uint8_t maxZoom_)
: ShapeAnnotationImpl(id_, maxZoom_),
- annotation({ ShapeAnnotationGeometry::visit(annotation_.geometry, CloseShapeAnnotation{}), annotation_.opacity, annotation_.color, annotation_.outlineColor }) {
+ annotation(ShapeAnnotationGeometry::visit(annotation_.geometry, CloseShapeAnnotation{}), annotation_.opacity, annotation_.color, annotation_.outlineColor) {
}
void FillAnnotationImpl::updateStyle(Style& style) const {
diff --git a/src/mbgl/annotation/line_annotation_impl.cpp b/src/mbgl/annotation/line_annotation_impl.cpp
index 15fa2c67f3..e01f637641 100644
--- a/src/mbgl/annotation/line_annotation_impl.cpp
+++ b/src/mbgl/annotation/line_annotation_impl.cpp
@@ -9,7 +9,7 @@ using namespace style;
LineAnnotationImpl::LineAnnotationImpl(AnnotationID id_, LineAnnotation annotation_, uint8_t maxZoom_)
: ShapeAnnotationImpl(id_, maxZoom_),
- annotation({ ShapeAnnotationGeometry::visit(annotation_.geometry, CloseShapeAnnotation{}), annotation_.opacity, annotation_.width, annotation_.color }) {
+ annotation(ShapeAnnotationGeometry::visit(annotation_.geometry, CloseShapeAnnotation{}), annotation_.opacity, annotation_.width, annotation_.color) {
}
void LineAnnotationImpl::updateStyle(Style& style) const {
diff --git a/src/mbgl/annotation/shape_annotation_impl.cpp b/src/mbgl/annotation/shape_annotation_impl.cpp
index d3ddf62b9e..d0a6f6239e 100644
--- a/src/mbgl/annotation/shape_annotation_impl.cpp
+++ b/src/mbgl/annotation/shape_annotation_impl.cpp
@@ -24,7 +24,14 @@ void ShapeAnnotationImpl::updateTileData(const CanonicalTileID& tileID, Annotati
if (!shapeTiler) {
mapbox::geometry::feature_collection<double> features;
features.emplace_back(ShapeAnnotationGeometry::visit(geometry(), [] (auto&& geom) {
+#if !defined(__GNUC__) || __GNUC__ >= 5
return Feature { std::move(geom) };
+#else
+ Feature feature;
+ feature.geometry = std::move(geom);
+
+ return feature;
+#endif
}));
mapbox::geojsonvt::Options options;
options.maxZoom = maxZoom;
diff --git a/src/mbgl/gl/context.hpp b/src/mbgl/gl/context.hpp
index 093afa20ed..056c262c0f 100644
--- a/src/mbgl/gl/context.hpp
+++ b/src/mbgl/gl/context.hpp
@@ -91,7 +91,7 @@ public:
template <typename Image>
Texture createTexture(const Image& image, TextureUnit unit = 0) {
auto format = image.channels == 4 ? TextureFormat::RGBA : TextureFormat::Alpha;
- return { image.size, createTexture(image.size, image.data.get(), format, unit) };
+ return Texture(image.size, [&] { return createTexture(image.size, image.data.get(), format, unit); });
}
template <typename Image>
@@ -105,7 +105,7 @@ public:
Texture createTexture(const Size size,
TextureFormat format = TextureFormat::RGBA,
TextureUnit unit = 0) {
- return { size, createTexture(size, nullptr, format, unit) };
+ return Texture(size, [&] { return createTexture(size, nullptr, format, unit); });
}
void bindTexture(Texture&,
diff --git a/src/mbgl/gl/texture.hpp b/src/mbgl/gl/texture.hpp
index 5330689ac2..ffa08ec80a 100644
--- a/src/mbgl/gl/texture.hpp
+++ b/src/mbgl/gl/texture.hpp
@@ -3,11 +3,15 @@
#include <mbgl/gl/object.hpp>
#include <mbgl/util/size.hpp>
+#include <functional>
+
namespace mbgl {
namespace gl {
class Texture {
public:
+ Texture(Size size_, std::function<UniqueTexture()> getTexture) : size(size_), texture(getTexture()) {}
+
Size size;
UniqueTexture texture;
TextureFilter filter = TextureFilter::Nearest;
diff --git a/src/mbgl/gl/uniform.hpp b/src/mbgl/gl/uniform.hpp
index 726cd4fe10..5c0980baf0 100644
--- a/src/mbgl/gl/uniform.hpp
+++ b/src/mbgl/gl/uniform.hpp
@@ -28,6 +28,8 @@ public:
class State {
public:
+ State(UniformLocation location_) : location(std::move(location_)) {}
+
void operator=(const Value& value) {
if (!current || *current != value.t) {
current = value.t;
@@ -67,7 +69,7 @@ public:
using Values = IndexedTuple<TypeList<Us...>, TypeList<typename Us::Value...>>;
static State state(const ProgramID& id) {
- return State { { uniformLocation(id, Us::name) }... };
+ return State(typename Us::State(uniformLocation(id, Us::name))...);
}
static std::function<void ()> binder(State& state, Values&& values_) {
diff --git a/src/mbgl/sprite/sprite_atlas.cpp b/src/mbgl/sprite/sprite_atlas.cpp
index ea055ce5ec..6a5ef97092 100644
--- a/src/mbgl/sprite/sprite_atlas.cpp
+++ b/src/mbgl/sprite/sprite_atlas.cpp
@@ -224,11 +224,11 @@ optional<SpriteAtlasPosition> SpriteAtlas::getPosition(const std::string& name,
const float w = spriteImage->getWidth() * (*img).relativePixelRatio;
const float h = spriteImage->getHeight() * (*img).relativePixelRatio;
- return SpriteAtlasPosition {
- {{ float(spriteImage->getWidth()), spriteImage->getHeight() }},
- {{ float(rect.x + padding) / size.width, float(rect.y + padding) / size.height }},
- {{ float(rect.x + padding + w) / size.width, float(rect.y + padding + h) / size.height }}
- };
+ return SpriteAtlasPosition(
+ std::array<float, 2> {{ float(spriteImage->getWidth()), float(spriteImage->getHeight()) }},
+ std::array<float, 2> {{ float(rect.x + padding) / size.width, float(rect.y + padding) / size.height }},
+ std::array<float, 2> {{ float(rect.x + padding + w) / size.width, float(rect.y + padding + h) / size.height }}
+ );
}
void copyBitmap(const uint32_t *src, const uint32_t srcStride, const uint32_t srcX, const uint32_t srcY,
diff --git a/src/mbgl/sprite/sprite_atlas.hpp b/src/mbgl/sprite/sprite_atlas.hpp
index c79aec135e..397d1d5233 100644
--- a/src/mbgl/sprite/sprite_atlas.hpp
+++ b/src/mbgl/sprite/sprite_atlas.hpp
@@ -28,6 +28,7 @@ class SpritePosition;
class SpriteAtlasPosition {
public:
+ SpriteAtlasPosition(std::array<float, 2> size_, std::array<float, 2> tl_, std::array<float, 2> br_) : size(std::move(size_)), tl(std::move(tl_)), br(std::move(br_)) {}
std::array<float, 2> size = {{ 0, 0 }};
std::array<float, 2> tl = {{ 0, 0 }};
std::array<float, 2> br = {{ 0, 0 }};
diff --git a/src/mbgl/style/property_parsing.cpp b/src/mbgl/style/property_parsing.cpp
index 16ce0f4adc..e89e7601d1 100644
--- a/src/mbgl/style/property_parsing.cpp
+++ b/src/mbgl/style/property_parsing.cpp
@@ -22,7 +22,11 @@ optional<TransitionOptions> parseTransitionOptions(const char *, const JSValue&
return {};
}
- return TransitionOptions { duration, delay };
+ TransitionOptions options;
+ options.duration = std::move(duration);
+ options.delay = std::move(delay);
+
+ return options;
}
} // namespace style
diff --git a/src/mbgl/tile/geometry_tile_data.cpp b/src/mbgl/tile/geometry_tile_data.cpp
index 2e465a6f65..f891e5aa04 100644
--- a/src/mbgl/tile/geometry_tile_data.cpp
+++ b/src/mbgl/tile/geometry_tile_data.cpp
@@ -208,7 +208,12 @@ static Feature::geometry_type convertGeometry(const GeometryTileFeature& geometr
}
Feature convertFeature(const GeometryTileFeature& geometryTileFeature, const CanonicalTileID& tileID) {
+#if !defined(__GNUC__) || __GNUC__ >= 5
Feature feature { convertGeometry(geometryTileFeature, tileID) };
+#else
+ Feature feature;
+ feature.geometry = convertGeometry(geometryTileFeature, tileID);
+#endif
feature.properties = geometryTileFeature.getProperties();
feature.id = geometryTileFeature.getID();
return feature;