本文整理汇总了C++中Patch::SetIterator方法的典型用法代码示例。如果您正苦于以下问题:C++ Patch::SetIterator方法的具体用法?C++ Patch::SetIterator怎么用?C++ Patch::SetIterator使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Patch
的用法示例。
在下文中一共展示了Patch::SetIterator方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findPatch
Patch * TerrainPager::GetPatch(const PatchID &patchID)
{
if (patchID.GetI() < 0 || patchID.GetJ() < 0) // reject call
return NULL;
// Check the working set to see if it is loaded
Patch *pPatch = findPatch(patchID);
if (NULL != pPatch)
{
pPatch->IncrementReferenceCount();
return pPatch;
}
// not within the working set.
// go get it.
// get a free slot.
assert(!readyPatchQueue.empty()); // uptil now we just assume that we have a patch pool that is sufficient to our needs.
unsigned int index = readyPatchQueue.front();
readyPatchQueue.pop(); // mark this patch as occupied.
// load the patch into this slot
pPatch = pPatches[index];
pPatch->Reset(); // reset internal values of nbLoadedVertices, currentLoadedLevel.
pPatch->SetID(patchID);
jobManager->RequestFillPatch(*pPatch, utilizeTextures);
// push it onto the list
workingSet.push_back(pPatch);
pPatch->IncrementReferenceCount(); // this one is used.
pPatch->SetIterator(--workingSet.end()); // the iterator of the latest added item.
return pPatch;
}