Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. void ProgressiveMeshGenerator::addIndexData(IndexData* indexData, bool useSharedVertexLookup, unsigned short submeshID)
  2. {
  3.     const HardwareIndexBufferSharedPtr& ibuf = indexData->indexBuffer;
  4.     size_t isize = ibuf->getIndexSize();
  5.     mIndexBufferInfoList[submeshID].indexSize = isize;
  6.     mIndexBufferInfoList[submeshID].indexCount = indexData->indexCount;
  7.     if (indexData->indexCount == 0) {
  8.         // Locking a zero length buffer on linux with nvidia cards fails.
  9.         return;
  10.     }
  11.     VertexLookupList& lookup = useSharedVertexLookup ? mSharedVertexLookup : mVertexLookup;
  12.  
  13.     // Lock the buffer for reading.
  14.     char* iStart = static_cast<char*>(ibuf->lock(HardwareBuffer::HBL_READ_ONLY));
  15.     char* iEnd = iStart + ibuf->getSizeInBytes();
  16.     if (isize == sizeof(unsigned short)) {
  17.         addIndexDataImpl<unsigned short>((unsigned short*) iStart, (unsigned short*) iEnd, lookup, submeshID);
  18.     } else {
  19.         // Unsupported index size.
  20.         OgreAssert(isize == sizeof(unsigned int), "");
  21.         addIndexDataImpl<unsigned int>((unsigned int*) iStart, (unsigned int*) iEnd, lookup, submeshID);
  22.     }
  23.     ibuf->unlock();
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement