summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAsheem Mamoowala <asheem.mamoowala@mapbox.com>2018-04-16 14:00:11 -0700
committerAsheem Mamoowala <asheem.mamoowala@mapbox.com>2018-04-16 14:00:11 -0700
commit666f87e2c6ee5152219a90fb4d37e96719c3bcb5 (patch)
tree444846f3bc82f169a7a7d7d86125f2b4b8fcedea
parente8d8d80a022ad5801ed57e7275380da7f1d1ca27 (diff)
downloadqtlocation-mapboxgl-upstream/fb-openglstylelayer-mega-casting.tar.gz
[ios, macos] Don't use union for MGLMatrix4upstream/fb-openglstylelayer-mega-casting
-rw-r--r--platform/darwin/src/MGLGeometry.h18
-rw-r--r--platform/darwin/src/MGLGeometry.mm11
2 files changed, 14 insertions, 15 deletions
diff --git a/platform/darwin/src/MGLGeometry.h b/platform/darwin/src/MGLGeometry.h
index d971f895bb..a8d3759106 100644
--- a/platform/darwin/src/MGLGeometry.h
+++ b/platform/darwin/src/MGLGeometry.h
@@ -24,17 +24,13 @@ typedef struct __attribute__((objc_boxable)) MGLMapPoint {
CGFloat zoomLevel;
} MGLMapPoint;
-union __attribute__((aligned(16))) _MGLMatrix4 {
- struct
- {
- double m00, m01, m02, m03;
- double m10, m11, m12, m13;
- double m20, m21, m22, m23;
- double m30, m31, m32, m33;
- };
- double m[16];
-};
-typedef union _MGLMatrix4 MGLMatrix4;
+/* Defines a 4x4 matrix. */
+typedef struct MGLMatrix4 {
+ double m00, m01, m02, m03;
+ double m10, m11, m12, m13;
+ double m20, m21, m22, m23;
+ double m30, m31, m32, m33;
+} MGLMatrix4;
/**
Creates a new `MGLCoordinateSpan` from the given latitudinal and longitudinal
diff --git a/platform/darwin/src/MGLGeometry.mm b/platform/darwin/src/MGLGeometry.mm
index e43c7b7b05..6785779570 100644
--- a/platform/darwin/src/MGLGeometry.mm
+++ b/platform/darwin/src/MGLGeometry.mm
@@ -113,9 +113,12 @@ MGLMapPoint MGLMapPointForCoordinate(CLLocationCoordinate2D coordinate, double z
}
MGLMatrix4 MGLMatrix4Make(std::array<double, 16> array) {
- MGLMatrix4 mat4;
- for(uint8_t i = 0; i< 16; i++) {
- mat4.m[i] = array[i];
- }
+ MGLMatrix4 mat4 = {
+ .m00 = array[0], .m01 = array[1], .m02 = array[2], .m03 = array[3],
+ .m10 = array[4], .m11 = array[5], .m12 = array[6], .m13 = array[7],
+ .m20 = array[8], .m21 = array[9], .m22 = array[10], .m23 = array[11],
+ .m30 = array[12], .m31 = array[13], .m32 = array[14], .m33 = array[15]
+ };
return mat4;
}
+