Added ResourceRef (Automatic resource reference)

Former-commit-id: 97a0b2732f4dc443b8e1676e68b33b1b53ddf4fb
This commit is contained in:
Lynix
2013-03-15 03:09:58 +01:00
parent 4ee6ca05ed
commit 6c2fb1eb89
29 changed files with 344 additions and 299 deletions

View File

@@ -29,9 +29,6 @@ m_vertexCount(vertexCount)
throw std::invalid_argument("Invalid vertex declaration");
}
#endif
m_buffer->AddResourceReference();
m_vertexDeclaration->AddResourceReference();
}
NzVertexBuffer::NzVertexBuffer(const NzVertexDeclaration* vertexDeclaration, unsigned int length, nzBufferStorage storage, nzBufferUsage usage) :
@@ -49,9 +46,7 @@ m_vertexCount(length)
#endif
m_buffer = new NzBuffer(nzBufferType_Vertex, length, vertexDeclaration->GetStride(nzElementStream_VertexData), storage, usage);
m_buffer->AddResourceReference();
m_buffer->SetPersistent(false);
m_vertexDeclaration->AddResourceReference();
}
NzVertexBuffer::NzVertexBuffer(const NzVertexBuffer& vertexBuffer) :
@@ -66,24 +61,14 @@ m_vertexCount(vertexBuffer.m_vertexCount)
NzBuffer* buffer = vertexBuffer.m_buffer;
m_buffer = new NzBuffer(nzBufferType_Vertex, buffer->GetLength(), buffer->GetSize(), buffer->GetStorage(), buffer->GetUsage());
m_buffer->AddResourceReference();
m_buffer->SetPersistent(false);
m_buffer->CopyContent(*vertexBuffer.m_buffer);
}
else
{
m_buffer = vertexBuffer.m_buffer;
m_buffer->AddResourceReference();
}
m_vertexDeclaration->AddResourceReference();
}
NzVertexBuffer::~NzVertexBuffer()
{
m_buffer->RemoveResourceReference();
m_vertexDeclaration->RemoveResourceReference();
}
NzVertexBuffer::~NzVertexBuffer() = default;
bool NzVertexBuffer::Fill(const void* data, unsigned int offset, unsigned int length)
{