Graphics/Renderable: Add InstanceData

Former-commit-id: f30f011ae91a445d5b22f33150a88bbda218950c
This commit is contained in:
Lynix
2015-06-11 14:14:11 +02:00
parent 6f2f8d6390
commit 48a54dfa5c
13 changed files with 195 additions and 37 deletions

View File

@@ -10,11 +10,9 @@ NzRenderable::~NzRenderable()
OnRenderableRelease(this);
}
bool NzRenderable::Cull(const NzFrustumf& frustum, const NzBoundingVolumef& volume, const NzMatrix4f& transformMatrix) const
bool NzRenderable::Cull(const NzFrustumf& frustum, const InstanceData& instanceData) const
{
NazaraUnused(transformMatrix);
return frustum.Contains(volume);
return frustum.Contains(instanceData.volume);
}
const NzBoundingVolumef& NzRenderable::GetBoundingVolume() const
@@ -24,11 +22,22 @@ const NzBoundingVolumef& NzRenderable::GetBoundingVolume() const
return m_boundingVolume;
}
void NzRenderable::UpdateBoundingVolume(NzBoundingVolumef* boundingVolume, const NzMatrix4f& transformMatrix) const
void NzRenderable::InvalidateData(InstanceData* instanceData, nzUInt32 flags) const
{
NazaraAssert(boundingVolume, "Invalid bounding volume");
instanceData->flags |= flags;
}
boundingVolume->Update(transformMatrix);
void NzRenderable::UpdateBoundingVolume(InstanceData* instanceData) const
{
NazaraAssert(instanceData, "Invalid instance data");
NazaraUnused(instanceData);
instanceData->volume.Update(instanceData->transformMatrix);
}
void NzRenderable::UpdateData(InstanceData* instanceData) const
{
NazaraAssert(instanceData, "Invalid instance data");
}
NzRenderableLibrary::LibraryMap NzRenderable::s_library;