Fixed warnings

Former-commit-id: ad7f020dde35087ed4c4fa81b531d5b9e74fc134
This commit is contained in:
Lynix 2013-09-06 18:38:13 +02:00
parent 19a5a3e433
commit b2dd572cfd
2 changed files with 57 additions and 0 deletions

View File

@ -41,6 +41,7 @@ class NAZARA_API NzForwardRenderQueue : public NzAbstractRenderQueue, NzResource
private:
bool OnResourceDestroy(const NzResource* resource, int index) override;
void OnResourceReleased(const NzResource* resource, int index) override;
struct SkeletalData
{

View File

@ -291,6 +291,62 @@ bool NzForwardRenderQueue::OnResourceDestroy(const NzResource* resource, int ind
return false; // Nous ne voulons plus recevoir d'évènement de cette ressource
}
void NzForwardRenderQueue::OnResourceReleased(const NzResource* resource, int index)
{
// La ressource vient d'être libérée, nous ne pouvons donc plus utiliser la méthode traditionnelle de recherche
// des pointeurs stockés (À cause de la fonction de triage utilisant des spécificités des ressources)
switch (index)
{
case ResourceType_Material:
for (auto it = opaqueModels.begin(); it != opaqueModels.end(); ++it)
{
if (it->first == resource)
{
opaqueModels.erase(it);
break;
}
}
break;
case ResourceType_SkeletalMesh:
{
for (auto& pair : opaqueModels)
{
BatchedSkeletalMeshContainer& container = std::get<2>(pair.second);
for (auto it = container.begin(); it != container.end(); ++it)
{
if (it->first == resource)
{
container.erase(it);
break;
}
}
}
break;
}
case ResourceType_StaticMesh:
{
for (auto& pair : opaqueModels)
{
BatchedStaticMeshContainer& container = std::get<3 >(pair.second);
for (auto it = container.begin(); it != container.end(); ++it)
{
if (it->first == resource)
{
container.erase(it);
break;
}
}
}
break;
}
}
}
bool NzForwardRenderQueue::BatchedModelMaterialComparator::operator()(const NzMaterial* mat1, const NzMaterial* mat2)
{
nzUInt32 possibleFlags[] = {