mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-07-02 03:13:38 +00:00
CVertexBuffer: Eliminate implicit bool conversions
This commit is contained in:
parent
12cd221c48
commit
127712f459
@ -20,7 +20,7 @@ void CAudioManager::LoadAssets()
|
|||||||
for (TResourceIterator<EResourceType::AudioGroup> It(mpProject->ResourceStore()); It; ++It)
|
for (TResourceIterator<EResourceType::AudioGroup> It(mpProject->ResourceStore()); It; ++It)
|
||||||
{
|
{
|
||||||
if (auto* pGroup = static_cast<CAudioGroup*>(It->Load()))
|
if (auto* pGroup = static_cast<CAudioGroup*>(It->Load()))
|
||||||
mAudioGroups.push_back(pGroup);
|
mAudioGroups.emplace_back(pGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::sort(mAudioGroups.begin(), mAudioGroups.end(), [](const CAudioGroup *pLeft, const CAudioGroup *pRight) {
|
std::sort(mAudioGroups.begin(), mAudioGroups.end(), [](const CAudioGroup *pLeft, const CAudioGroup *pRight) {
|
||||||
|
@ -29,34 +29,34 @@ uint16 CVertexBuffer::AddVertex(const CVertex& rkVtx)
|
|||||||
if (mPositions.size() == 0xFFFF)
|
if (mPositions.size() == 0xFFFF)
|
||||||
throw std::overflow_error("VBO contains too many vertices");
|
throw std::overflow_error("VBO contains too many vertices");
|
||||||
|
|
||||||
if (mVtxDesc & EVertexAttribute::Position)
|
if ((mVtxDesc & EVertexAttribute::Position) != 0)
|
||||||
mPositions.push_back(rkVtx.Position);
|
mPositions.emplace_back(rkVtx.Position);
|
||||||
if (mVtxDesc & EVertexAttribute::Normal)
|
if ((mVtxDesc & EVertexAttribute::Normal) != 0)
|
||||||
mNormals.push_back(rkVtx.Normal);
|
mNormals.emplace_back(rkVtx.Normal);
|
||||||
if (mVtxDesc & EVertexAttribute::Color0)
|
if ((mVtxDesc & EVertexAttribute::Color0) != 0)
|
||||||
mColors[0].push_back(rkVtx.Color[0]);
|
mColors[0].emplace_back(rkVtx.Color[0]);
|
||||||
if (mVtxDesc & EVertexAttribute::Color1)
|
if ((mVtxDesc & EVertexAttribute::Color1) != 0)
|
||||||
mColors[1].push_back(rkVtx.Color[1]);
|
mColors[1].emplace_back(rkVtx.Color[1]);
|
||||||
|
|
||||||
for (size_t iTex = 0; iTex < mTexCoords.size(); iTex++)
|
for (size_t iTex = 0; iTex < mTexCoords.size(); iTex++)
|
||||||
{
|
{
|
||||||
if (mVtxDesc & (EVertexAttribute::Tex0 << iTex))
|
if ((mVtxDesc & (EVertexAttribute::Tex0 << iTex)) != 0)
|
||||||
mTexCoords[iTex].push_back(rkVtx.Tex[iTex]);
|
mTexCoords[iTex].emplace_back(rkVtx.Tex[iTex]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t iMtx = 0; iMtx < mTexCoords.size(); iMtx++)
|
for (size_t iMtx = 0; iMtx < mTexCoords.size(); iMtx++)
|
||||||
{
|
{
|
||||||
if (mVtxDesc & (EVertexAttribute::PosMtx << iMtx))
|
if ((mVtxDesc & (EVertexAttribute::PosMtx << iMtx)) != 0)
|
||||||
mTexCoords[iMtx].push_back(rkVtx.MatrixIndices[iMtx]);
|
mTexCoords[iMtx].emplace_back(rkVtx.MatrixIndices[iMtx]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mVtxDesc.HasAnyFlags(EVertexAttribute::BoneIndices | EVertexAttribute::BoneWeights) && mpSkin)
|
if (mVtxDesc.HasAnyFlags(EVertexAttribute::BoneIndices | EVertexAttribute::BoneWeights) && mpSkin != nullptr)
|
||||||
{
|
{
|
||||||
const SVertexWeights& rkWeights = mpSkin->WeightsForVertex(rkVtx.ArrayPosition);
|
const SVertexWeights& rkWeights = mpSkin->WeightsForVertex(rkVtx.ArrayPosition);
|
||||||
if (mVtxDesc & EVertexAttribute::BoneIndices)
|
if ((mVtxDesc & EVertexAttribute::BoneIndices) != 0)
|
||||||
mBoneIndices.push_back(rkWeights.Indices);
|
mBoneIndices.emplace_back(rkWeights.Indices);
|
||||||
if (mVtxDesc & EVertexAttribute::BoneWeights)
|
if ((mVtxDesc & EVertexAttribute::BoneWeights) != 0)
|
||||||
mBoneWeights.push_back(rkWeights.Weights);
|
mBoneWeights.emplace_back(rkWeights.Weights);
|
||||||
}
|
}
|
||||||
|
|
||||||
return mPositions.size() - 1;
|
return mPositions.size() - 1;
|
||||||
@ -66,30 +66,30 @@ uint16 CVertexBuffer::AddIfUnique(const CVertex& rkVtx, uint16 Start)
|
|||||||
{
|
{
|
||||||
if (Start < mPositions.size())
|
if (Start < mPositions.size())
|
||||||
{
|
{
|
||||||
for (uint16 iVert = Start; iVert < mPositions.size(); iVert++)
|
for (size_t iVert = Start; iVert < mPositions.size(); iVert++)
|
||||||
{
|
{
|
||||||
// I use a bool because "continue" doesn't work properly within the iTex loop
|
// I use a bool because "continue" doesn't work properly within the iTex loop
|
||||||
bool Unique = false;
|
bool Unique = false;
|
||||||
|
|
||||||
if (mVtxDesc & EVertexAttribute::Position)
|
if ((mVtxDesc & EVertexAttribute::Position) != 0)
|
||||||
{
|
{
|
||||||
if (rkVtx.Position != mPositions[iVert])
|
if (rkVtx.Position != mPositions[iVert])
|
||||||
Unique = true;
|
Unique = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Unique && (mVtxDesc & EVertexAttribute::Normal))
|
if (!Unique && (mVtxDesc & EVertexAttribute::Normal) != 0)
|
||||||
{
|
{
|
||||||
if (rkVtx.Normal != mNormals[iVert])
|
if (rkVtx.Normal != mNormals[iVert])
|
||||||
Unique = true;
|
Unique = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Unique && (mVtxDesc & EVertexAttribute::Color0))
|
if (!Unique && (mVtxDesc & EVertexAttribute::Color0) != 0)
|
||||||
{
|
{
|
||||||
if (rkVtx.Color[0] != mColors[0][iVert])
|
if (rkVtx.Color[0] != mColors[0][iVert])
|
||||||
Unique = true;
|
Unique = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Unique && (mVtxDesc & EVertexAttribute::Color1))
|
if (!Unique && (mVtxDesc & EVertexAttribute::Color1) != 0)
|
||||||
{
|
{
|
||||||
if (rkVtx.Color[1] != mColors[1][iVert])
|
if (rkVtx.Color[1] != mColors[1][iVert])
|
||||||
Unique = true;
|
Unique = true;
|
||||||
@ -99,7 +99,7 @@ uint16 CVertexBuffer::AddIfUnique(const CVertex& rkVtx, uint16 Start)
|
|||||||
{
|
{
|
||||||
for (size_t iTex = 0; iTex < mTexCoords.size(); iTex++)
|
for (size_t iTex = 0; iTex < mTexCoords.size(); iTex++)
|
||||||
{
|
{
|
||||||
if (mVtxDesc & (EVertexAttribute::Tex0 << iTex))
|
if ((mVtxDesc & (EVertexAttribute::Tex0 << iTex)) != 0)
|
||||||
{
|
{
|
||||||
if (rkVtx.Tex[iTex] != mTexCoords[iTex][iVert])
|
if (rkVtx.Tex[iTex] != mTexCoords[iTex][iVert])
|
||||||
{
|
{
|
||||||
@ -110,14 +110,14 @@ uint16 CVertexBuffer::AddIfUnique(const CVertex& rkVtx, uint16 Start)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Unique && mpSkin && (mVtxDesc.HasAnyFlags(EVertexAttribute::BoneIndices | EVertexAttribute::BoneWeights)))
|
if (!Unique && mpSkin != nullptr && (mVtxDesc.HasAnyFlags(EVertexAttribute::BoneIndices | EVertexAttribute::BoneWeights)))
|
||||||
{
|
{
|
||||||
const SVertexWeights& rkWeights = mpSkin->WeightsForVertex(rkVtx.ArrayPosition);
|
const SVertexWeights& rkWeights = mpSkin->WeightsForVertex(rkVtx.ArrayPosition);
|
||||||
|
|
||||||
for (uint32 iWgt = 0; iWgt < 4; iWgt++)
|
for (uint32 iWgt = 0; iWgt < 4; iWgt++)
|
||||||
{
|
{
|
||||||
if (((mVtxDesc & EVertexAttribute::BoneIndices) && (rkWeights.Indices[iWgt] != mBoneIndices[iVert][iWgt])) ||
|
if (((mVtxDesc & EVertexAttribute::BoneIndices) != 0 && (rkWeights.Indices[iWgt] != mBoneIndices[iVert][iWgt])) ||
|
||||||
((mVtxDesc & EVertexAttribute::BoneWeights) && (rkWeights.Weights[iWgt] != mBoneWeights[iVert][iWgt])))
|
((mVtxDesc & EVertexAttribute::BoneWeights) != 0 && (rkWeights.Weights[iWgt] != mBoneWeights[iVert][iWgt])))
|
||||||
{
|
{
|
||||||
Unique = true;
|
Unique = true;
|
||||||
break;
|
break;
|
||||||
@ -126,7 +126,7 @@ uint16 CVertexBuffer::AddIfUnique(const CVertex& rkVtx, uint16 Start)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!Unique)
|
if (!Unique)
|
||||||
return iVert;
|
return static_cast<uint16>(iVert);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,28 +137,28 @@ void CVertexBuffer::Reserve(size_t Size)
|
|||||||
{
|
{
|
||||||
const size_t ReserveSize = mPositions.size() + Size;
|
const size_t ReserveSize = mPositions.size() + Size;
|
||||||
|
|
||||||
if (mVtxDesc & EVertexAttribute::Position)
|
if ((mVtxDesc & EVertexAttribute::Position) != 0)
|
||||||
mPositions.reserve(ReserveSize);
|
mPositions.reserve(ReserveSize);
|
||||||
|
|
||||||
if (mVtxDesc & EVertexAttribute::Normal)
|
if ((mVtxDesc & EVertexAttribute::Normal) != 0)
|
||||||
mNormals.reserve(ReserveSize);
|
mNormals.reserve(ReserveSize);
|
||||||
|
|
||||||
if (mVtxDesc & EVertexAttribute::Color0)
|
if ((mVtxDesc & EVertexAttribute::Color0) != 0)
|
||||||
mColors[0].reserve(ReserveSize);
|
mColors[0].reserve(ReserveSize);
|
||||||
|
|
||||||
if (mVtxDesc & EVertexAttribute::Color1)
|
if ((mVtxDesc & EVertexAttribute::Color1) != 0)
|
||||||
mColors[1].reserve(ReserveSize);
|
mColors[1].reserve(ReserveSize);
|
||||||
|
|
||||||
for (size_t iTex = 0; iTex < mTexCoords.size(); iTex++)
|
for (size_t iTex = 0; iTex < mTexCoords.size(); iTex++)
|
||||||
{
|
{
|
||||||
if (mVtxDesc & (EVertexAttribute::Tex0 << iTex))
|
if ((mVtxDesc & (EVertexAttribute::Tex0 << iTex)) != 0)
|
||||||
mTexCoords[iTex].reserve(ReserveSize);
|
mTexCoords[iTex].reserve(ReserveSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mVtxDesc & EVertexAttribute::BoneIndices)
|
if ((mVtxDesc & EVertexAttribute::BoneIndices) != 0)
|
||||||
mBoneIndices.reserve(ReserveSize);
|
mBoneIndices.reserve(ReserveSize);
|
||||||
|
|
||||||
if (mVtxDesc & EVertexAttribute::BoneWeights)
|
if ((mVtxDesc & EVertexAttribute::BoneWeights) != 0)
|
||||||
mBoneWeights.reserve(ReserveSize);
|
mBoneWeights.reserve(ReserveSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user