Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15
ogre
fix-template-function.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fix-template-function.patch of Package ogre
# HG changeset patch # User David Rogers <masterfalcon@ogre3d.org> # Date 1387963977 21600 # Branch v1-9 # Node ID a24ac4afbbb9dc5ff49a61634af50da11ba8fb97 # Parent de9ed8c143d87fc54ee9979db142d3410245fcf0 [OGRE-357] Resolve link errors due to incorrect template creation that is a allowed by some compilers but isn’t actually correct c++ usage. diff --git a/OgreMain/include/OgreProgressiveMeshGenerator.h b/OgreMain/include/OgreProgressiveMeshGenerator.h --- a/OgreMain/include/OgreProgressiveMeshGenerator.h +++ b/OgreMain/include/OgreProgressiveMeshGenerator.h @@ -34,6 +34,7 @@ #include "OgreSmallVector.h" #include "OgreMesh.h" #include "OgreLodConfig.h" +#include "OgreLogManager.h" namespace Ogre { @@ -214,9 +215,44 @@ size_t calcLodVertexCount(const LodLevel& lodConfig); void tuneContainerSize(); void addVertexData(VertexData* vertexData, bool useSharedVertexLookup); - template<typename IndexType> - void addIndexDataImpl(IndexType* iPos, const IndexType* iEnd, VertexLookupList& lookup, unsigned short submeshID); void addIndexData(IndexData* indexData, bool useSharedVertexLookup, unsigned short submeshID); + template<typename IndexType> + 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 computeCosts(); bool isBorderVertex(const PMVertex* vertex) const; diff --git a/OgreMain/src/OgreProgressiveMeshGenerator.cpp b/OgreMain/src/OgreProgressiveMeshGenerator.cpp --- a/OgreMain/src/OgreProgressiveMeshGenerator.cpp +++ b/OgreMain/src/OgreProgressiveMeshGenerator.cpp @@ -45,7 +45,6 @@ #include "OgreSubMesh.h" #include "OgreMesh.h" #include "OgreLodStrategy.h" -#include "OgreLogManager.h" #include "OgrePixelCountLodStrategy.h" namespace Ogre @@ -219,43 +218,6 @@ } vbuf->unlock(); } -template<typename IndexType> -void ProgressiveMeshGenerator::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 ProgressiveMeshGenerator::addIndexData(IndexData* indexData, bool useSharedVertexLookup, unsigned short submeshID) {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor