From e8cdee71ed5eef4b0e9106d38d27f0467a1dc4d7 Mon Sep 17 00:00:00 2001 From: samcake Date: Fri, 3 Feb 2017 22:49:41 -0800 Subject: [PATCH] avoid assertion on mac --- interface/src/avatar/CauterizedModel.cpp | 4 ++-- libraries/fbx/src/FBXReader_Node.cpp | 4 +++- libraries/gpu/src/gpu/Image.cpp | 4 ++-- libraries/gpu/src/gpu/Image.h | 6 +++--- libraries/model/src/model/TextureMap.cpp | 4 ++-- libraries/render-utils/src/Model.cpp | 2 +- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/interface/src/avatar/CauterizedModel.cpp b/interface/src/avatar/CauterizedModel.cpp index 02107e9d24..f6b470f024 100644 --- a/interface/src/avatar/CauterizedModel.cpp +++ b/interface/src/avatar/CauterizedModel.cpp @@ -116,7 +116,7 @@ void CauterizedModel::updateClusterMatrices() { for (int j = 0; j < mesh.clusters.size(); j++) { const FBXCluster& cluster = mesh.clusters.at(j); auto jointMatrix = _rig->getJointTransform(cluster.jointIndex); -#if GLM_ARCH & GLM_ARCH_SSE2 +#if (GLM_ARCH & GLM_ARCH_SSE2) && !(defined Q_OS_MACOS) glm::mat4 out, inverseBindMatrix = cluster.inverseBindMatrix; glm_mat4_mul((glm_vec4*)&jointMatrix, (glm_vec4*)&inverseBindMatrix, (glm_vec4*)&out); state.clusterMatrices[j] = out; @@ -155,7 +155,7 @@ void CauterizedModel::updateClusterMatrices() { if (_cauterizeBoneSet.find(cluster.jointIndex) != _cauterizeBoneSet.end()) { jointMatrix = cauterizeMatrix; } -#if GLM_ARCH & GLM_ARCH_SSE2 +#if (GLM_ARCH & GLM_ARCH_SSE2) && !(defined Q_OS_MACOS) glm::mat4 out, inverseBindMatrix = cluster.inverseBindMatrix; glm_mat4_mul((glm_vec4*)&jointMatrix, (glm_vec4*)&inverseBindMatrix, (glm_vec4*)&out); state.clusterMatrices[j] = out; diff --git a/libraries/fbx/src/FBXReader_Node.cpp b/libraries/fbx/src/FBXReader_Node.cpp index 435c4d830b..61bd3321cb 100644 --- a/libraries/fbx/src/FBXReader_Node.cpp +++ b/libraries/fbx/src/FBXReader_Node.cpp @@ -62,7 +62,9 @@ template QVariant readBinaryArray(QDataStream& in, int& position) { position += sizeof(T) * arrayLength; in.readRawData(arrayData.data(), arrayData.size()); } - memcpy(&values[0], arrayData.constData(), arrayData.size()); + if (!arrayData.isEmpty()) { + memcpy(&values[0], arrayData.constData(), arrayData.size()); + } } else { values.reserve(arrayLength); const unsigned int DEFLATE_ENCODING = 1; diff --git a/libraries/gpu/src/gpu/Image.cpp b/libraries/gpu/src/gpu/Image.cpp index 5de1008d8f..4d08307fbb 100644 --- a/libraries/gpu/src/gpu/Image.cpp +++ b/libraries/gpu/src/gpu/Image.cpp @@ -27,7 +27,7 @@ template <> void uncompress(const CB_BC1& src, PB_RGB32& dst) { auto c0 = bc1.color0.val; auto c1 = bc1.color1.val; - for (int i = 0; i < PB_RGB32::SIZE; ++i) { + for (int i = 0; i < PB_RGB32::LENGTH; ++i) { //dst.pixels[i] = ; auto r = pixel::mix( c0, @@ -44,4 +44,4 @@ template <> void uncompress(const CB_BC4& src, PB_RGBA32& dst) { } -} \ No newline at end of file +} diff --git a/libraries/gpu/src/gpu/Image.h b/libraries/gpu/src/gpu/Image.h index 67d2071c4a..e6dc944b3b 100644 --- a/libraries/gpu/src/gpu/Image.h +++ b/libraries/gpu/src/gpu/Image.h @@ -99,8 +99,8 @@ namespace image { using Format = typename P::Format; using Storage = typename P::Storage; - constexpr uint16_t getLength() const { return length; } - uint32_t getSize() const { return length * sizeof(P); } + static const uint32_t LENGTH { length }; + static const uint32_t SIZE { length * sizeof(P) }; P pixels[length]; @@ -112,7 +112,7 @@ namespace image { } void setPixels(const P* srcPixels) { - memcpy(pixels, srcPixels, getSize()); + memcpy(pixels, srcPixels, SIZE); } const Storage* getStorage() const { return static_cast (&pixels->raw); } diff --git a/libraries/model/src/model/TextureMap.cpp b/libraries/model/src/model/TextureMap.cpp index 9f62c9abbc..7436306f3c 100755 --- a/libraries/model/src/model/TextureMap.cpp +++ b/libraries/model/src/model/TextureMap.cpp @@ -255,7 +255,7 @@ gpu::Texture* TextureUsage::process2DTextureColorFromImage(const QImage& srcImag theTexture->assignStoredMip(0, formatMip, image.byteCount(), image.constBits()); - image::PixRGB32 pix0; + /* image::PixRGB32 pix0; image::PixRGBA32 pix1; @@ -280,7 +280,7 @@ gpu::Texture* TextureUsage::process2DTextureColorFromImage(const QImage& srcImag image::uncompress(cb, pb1); image::Grid grid; - grid. + grid.*/ if (generateMips) { ::generateMips(theTexture, image, formatMip); diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp index 018a7e6954..5da21f0487 100644 --- a/libraries/render-utils/src/Model.cpp +++ b/libraries/render-utils/src/Model.cpp @@ -1183,7 +1183,7 @@ void Model::updateClusterMatrices() { for (int j = 0; j < mesh.clusters.size(); j++) { const FBXCluster& cluster = mesh.clusters.at(j); auto jointMatrix = _rig->getJointTransform(cluster.jointIndex); -#if GLM_ARCH & GLM_ARCH_SSE2 +#if (GLM_ARCH & GLM_ARCH_SSE2) && !(defined Q_OS_MACOS) glm::mat4 out, inverseBindMatrix = cluster.inverseBindMatrix; glm_mat4_mul((glm_vec4*)&jointMatrix, (glm_vec4*)&inverseBindMatrix, (glm_vec4*)&out); state.clusterMatrices[j] = out;