in d3d/archive/images/d3d11/tessellator.cpp [2077:2115]
int CHWTessellator::PatchIndexValue(int index)
{
if( m_bUsingPatchedIndices )
{
if( index >= m_IndexPatchContext.outsidePointIndexPatchBase ) // assumed remapped outide indices are > remapped inside vertices
{
if( index == m_IndexPatchContext.outsidePointIndexBadValue )
index = m_IndexPatchContext.outsidePointIndexReplacementValue;
else
index += m_IndexPatchContext.outsidePointIndexDeltaToRealValue;
}
else
{
if( index == m_IndexPatchContext.insidePointIndexBadValue )
index = m_IndexPatchContext.insidePointIndexReplacementValue;
else
index += m_IndexPatchContext.insidePointIndexDeltaToRealValue;
}
}
else if( m_bUsingPatchedIndices2 )
{
if( index >= m_IndexPatchContext2.baseIndexToInvert )
{
if( index == m_IndexPatchContext2.cornerCaseBadValue )
{
index = m_IndexPatchContext2.cornerCaseReplacementValue;
}
else
{
index = m_IndexPatchContext2.indexInversionEndPoint - index;
}
}
else if( index == m_IndexPatchContext2.cornerCaseBadValue )
{
index = m_IndexPatchContext2.cornerCaseReplacementValue;
}
}
return index;
}