Separated reference counting from Resources
Former-commit-id: 7380818cfee9e249c11fd15da9ff7883a6e76565
This commit is contained in:
@@ -51,6 +51,7 @@ m_sharedImage(&emptyImage)
|
||||
}
|
||||
|
||||
NzImage::NzImage(const NzImage& image) :
|
||||
NzRefCounted(),
|
||||
NzResource(),
|
||||
m_sharedImage(image.m_sharedImage)
|
||||
{
|
||||
|
||||
@@ -22,7 +22,7 @@ NzIndexBuffer::NzIndexBuffer(bool largeIndices, unsigned int length, nzBufferSto
|
||||
}
|
||||
|
||||
NzIndexBuffer::NzIndexBuffer(const NzIndexBuffer& indexBuffer) :
|
||||
NzResource(),
|
||||
NzRefCounted(),
|
||||
m_buffer(indexBuffer.m_buffer),
|
||||
m_largeIndices(indexBuffer.m_largeIndices),
|
||||
m_endOffset(indexBuffer.m_endOffset),
|
||||
@@ -32,7 +32,7 @@ m_startOffset(indexBuffer.m_startOffset)
|
||||
}
|
||||
|
||||
NzIndexBuffer::NzIndexBuffer(NzIndexBuffer&& indexBuffer) noexcept :
|
||||
NzResource(),
|
||||
NzRefCounted(),
|
||||
m_buffer(std::move(indexBuffer.m_buffer)),
|
||||
m_largeIndices(indexBuffer.m_largeIndices),
|
||||
m_endOffset(indexBuffer.m_endOffset),
|
||||
|
||||
@@ -91,8 +91,8 @@ void NzMesh::AddSubMesh(NzSubMesh* subMesh)
|
||||
}
|
||||
#endif
|
||||
|
||||
subMesh->AddResourceListener(this, m_impl->subMeshes.size());
|
||||
subMesh->AddResourceReference();
|
||||
subMesh->AddObjectListener(this, m_impl->subMeshes.size());
|
||||
subMesh->AddReference();
|
||||
|
||||
m_impl->aabbUpdated = false; // On invalide l'AABB
|
||||
m_impl->subMeshes.push_back(subMesh);
|
||||
@@ -135,8 +135,8 @@ void NzMesh::AddSubMesh(const NzString& identifier, NzSubMesh* subMesh)
|
||||
|
||||
int index = m_impl->subMeshes.size();
|
||||
|
||||
subMesh->AddResourceListener(this, index);
|
||||
subMesh->AddResourceReference();
|
||||
subMesh->AddObjectListener(this, index);
|
||||
subMesh->AddReference();
|
||||
|
||||
m_impl->aabbUpdated = false; // On invalide l'AABB
|
||||
m_impl->subMeshes.push_back(subMesh);
|
||||
@@ -373,8 +373,8 @@ void NzMesh::Destroy()
|
||||
|
||||
for (NzSubMesh* subMesh : m_impl->subMeshes)
|
||||
{
|
||||
subMesh->RemoveResourceListener(this);
|
||||
subMesh->RemoveResourceReference();
|
||||
subMesh->RemoveObjectListener(this);
|
||||
subMesh->RemoveReference();
|
||||
}
|
||||
|
||||
delete m_impl;
|
||||
@@ -866,8 +866,8 @@ void NzMesh::RemoveSubMesh(const NzString& identifier)
|
||||
|
||||
// On libère la ressource
|
||||
NzSubMesh* subMesh = *it2;
|
||||
subMesh->RemoveResourceListener(this);
|
||||
subMesh->RemoveResourceReference();
|
||||
subMesh->RemoveObjectListener(this);
|
||||
subMesh->RemoveReference();
|
||||
|
||||
m_impl->subMeshes.erase(it2);
|
||||
|
||||
@@ -896,8 +896,8 @@ void NzMesh::RemoveSubMesh(unsigned int index)
|
||||
|
||||
// On libère la ressource
|
||||
NzSubMesh* subMesh = *it;
|
||||
subMesh->RemoveResourceListener(this);
|
||||
subMesh->RemoveResourceReference();
|
||||
subMesh->RemoveObjectListener(this);
|
||||
subMesh->RemoveReference();
|
||||
|
||||
m_impl->subMeshes.erase(it);
|
||||
|
||||
@@ -1011,9 +1011,9 @@ void NzMesh::Transform(const NzMatrix4f& matrix)
|
||||
m_impl->aabbUpdated = false;
|
||||
}
|
||||
|
||||
void NzMesh::OnResourceReleased(const NzResource* resource, int index)
|
||||
void NzMesh::OnObjectReleased(const NzRefCounted* object, int index)
|
||||
{
|
||||
NazaraUnused(resource);
|
||||
NazaraUnused(object);
|
||||
|
||||
RemoveSubMesh(index);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ struct NzSkeletonImpl
|
||||
};
|
||||
|
||||
NzSkeleton::NzSkeleton(const NzSkeleton& skeleton) :
|
||||
NzResource(),
|
||||
NzRefCounted(),
|
||||
m_impl(nullptr)
|
||||
{
|
||||
operator=(skeleton);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include <Nazara/Utility/Debug.hpp>
|
||||
|
||||
NzSubMesh::NzSubMesh(const NzMesh* parent) :
|
||||
NzResource(false), // Un SubMesh n'est pas persistant par défaut
|
||||
NzRefCounted(false), // Un SubMesh n'est pas persistant par défaut
|
||||
m_primitiveMode(nzPrimitiveMode_TriangleList),
|
||||
m_parent(parent),
|
||||
m_matIndex(0)
|
||||
|
||||
@@ -18,7 +18,7 @@ NzVertexBuffer::NzVertexBuffer(const NzVertexDeclaration* vertexDeclaration, uns
|
||||
}
|
||||
|
||||
NzVertexBuffer::NzVertexBuffer(const NzVertexBuffer& vertexBuffer) :
|
||||
NzResource(),
|
||||
NzRefCounted(),
|
||||
m_buffer(vertexBuffer.m_buffer),
|
||||
m_vertexDeclaration(vertexBuffer.m_vertexDeclaration),
|
||||
m_endOffset(vertexBuffer.m_endOffset),
|
||||
|
||||
@@ -19,7 +19,7 @@ m_stride(0)
|
||||
}
|
||||
|
||||
NzVertexDeclaration::NzVertexDeclaration(const NzVertexDeclaration& declaration) :
|
||||
NzResource(),
|
||||
NzRefCounted(),
|
||||
m_stride(declaration.m_stride)
|
||||
{
|
||||
std::memcpy(m_components, declaration.m_components, sizeof(Component)*(nzVertexComponent_Max+1));
|
||||
|
||||
Reference in New Issue
Block a user