diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-games/ogre/files/ogre-1.9.0-gcc52.patch |
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-games/ogre/files/ogre-1.9.0-gcc52.patch')
-rw-r--r-- | dev-games/ogre/files/ogre-1.9.0-gcc52.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/dev-games/ogre/files/ogre-1.9.0-gcc52.patch b/dev-games/ogre/files/ogre-1.9.0-gcc52.patch new file mode 100644 index 000000000000..030368de29e3 --- /dev/null +++ b/dev-games/ogre/files/ogre-1.9.0-gcc52.patch @@ -0,0 +1,63 @@ +--- a/OgreMain/include/OgreProgressiveMeshGenerator.h ++++ b/OgreMain/include/OgreProgressiveMeshGenerator.h +@@ -215,7 +215,40 @@ + void tuneContainerSize(); + void addVertexData(VertexData* vertexData, bool useSharedVertexLookup); + template<typename IndexType> +- void addIndexDataImpl(IndexType* iPos, const IndexType* iEnd, VertexLookupList& lookup, unsigned short submeshID); ++ void addIndexDataImpl(IndexType* iPos, const IndexType* iEnd, VertexLookupList& lookup, unsigned short submeshID) ++ { ++ ++ // Loop through all triangles and connect them to the vertices. ++ for (; iPos < iEnd; iPos += 3) { ++ // It should never reallocate or every pointer will be invalid. ++ OgreAssert(mTriangleList.capacity() > mTriangleList.size(), ""); ++ mTriangleList.push_back(PMTriangle()); ++ PMTriangle* tri = &mTriangleList.back(); ++ tri->isRemoved = false; ++ tri->submeshID = submeshID; ++ for (int i = 0; i < 3; i++) { ++ // Invalid index: Index is bigger then vertex buffer size. ++ OgreAssert(iPos[i] < lookup.size(), ""); ++ tri->vertexID[i] = iPos[i]; ++ tri->vertex[i] = lookup[iPos[i]]; ++ } ++ if (tri->isMalformed()) { ++#if OGRE_DEBUG_MODE ++ stringstream str; ++ str << "In " << mMeshName << " malformed triangle found with ID: " << getTriangleID(tri) << ". " << ++ std::endl; ++ printTriangle(tri, str); ++ str << "It will be excluded from LOD level calculations."; ++ LogManager::getSingleton().stream() << str.str(); ++#endif ++ tri->isRemoved = true; ++ mIndexBufferInfoList[tri->submeshID].indexCount -= 3; ++ continue; ++ } ++ tri->computeNormal(); ++ addTriangleToEdges(tri); ++ } ++ } + void addIndexData(IndexData* indexData, bool useSharedVertexLookup, unsigned short submeshID); + + void computeCosts(); +--- a/OgreMain/src/OgreProgressiveMeshGenerator.cpp ++++ b/OgreMain/src/OgreProgressiveMeshGenerator.cpp +@@ -219,6 +219,8 @@ + } + vbuf->unlock(); + } ++/// Called from OgreQueuedProgressiveMeshGenerator.cpp, so it can not be defined in here. ++#if 0 + template<typename IndexType> + void ProgressiveMeshGenerator::addIndexDataImpl(IndexType* iPos, const IndexType* iEnd, + VertexLookupList& lookup, +@@ -256,6 +258,7 @@ + addTriangleToEdges(tri); + } + } ++#endif // 0 + + void ProgressiveMeshGenerator::addIndexData(IndexData* indexData, bool useSharedVertexLookup, unsigned short submeshID) + { |