Added non-constant access to vertex buffer
Former-commit-id: c0fea611caf6fb48bd0b2ed56897c173f7acad41
This commit is contained in:
parent
6fefa3fdd2
commit
c73d10ab29
|
|
@ -31,6 +31,7 @@ class NAZARA_API NzKeyframeMesh final : public NzSubMesh
|
||||||
unsigned int GetFrameCount() const;
|
unsigned int GetFrameCount() const;
|
||||||
const NzIndexBuffer* GetIndexBuffer() const override;
|
const NzIndexBuffer* GetIndexBuffer() const override;
|
||||||
void GetVertex(unsigned int frameIndex, unsigned int vertexIndex, NzMeshVertex* dest) const;
|
void GetVertex(unsigned int frameIndex, unsigned int vertexIndex, NzMeshVertex* dest) const;
|
||||||
|
NzVertexBuffer* GetVertexBuffer() override;
|
||||||
const NzVertexBuffer* GetVertexBuffer() const override;
|
const NzVertexBuffer* GetVertexBuffer() const override;
|
||||||
|
|
||||||
void Interpolate(const NzAnimation* animation, unsigned int frameA, unsigned int frameB, float interpolation) const;
|
void Interpolate(const NzAnimation* animation, unsigned int frameA, unsigned int frameB, float interpolation) const;
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ class NAZARA_API NzSkeletalMesh final : public NzSubMesh
|
||||||
void* GetBindPoseBuffer();
|
void* GetBindPoseBuffer();
|
||||||
const void* GetBindPoseBuffer() const;
|
const void* GetBindPoseBuffer() const;
|
||||||
const NzIndexBuffer* GetIndexBuffer() const override;
|
const NzIndexBuffer* GetIndexBuffer() const override;
|
||||||
|
NzVertexBuffer* GetVertexBuffer() override;
|
||||||
const NzVertexBuffer* GetVertexBuffer() const override;
|
const NzVertexBuffer* GetVertexBuffer() const override;
|
||||||
NzVertexWeight* GetVertexWeight(unsigned int vertexIndex = 0);
|
NzVertexWeight* GetVertexWeight(unsigned int vertexIndex = 0);
|
||||||
const NzVertexWeight* GetVertexWeight(unsigned int vertexIndex = 0) const;
|
const NzVertexWeight* GetVertexWeight(unsigned int vertexIndex = 0) const;
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ class NAZARA_API NzStaticMesh final : public NzSubMesh, NzResourceListener
|
||||||
const NzAxisAlignedBox& GetAABB() const override;
|
const NzAxisAlignedBox& GetAABB() const override;
|
||||||
nzAnimationType GetAnimationType() const final;
|
nzAnimationType GetAnimationType() const final;
|
||||||
const NzIndexBuffer* GetIndexBuffer() const override;
|
const NzIndexBuffer* GetIndexBuffer() const override;
|
||||||
|
NzVertexBuffer* GetVertexBuffer() override;
|
||||||
const NzVertexBuffer* GetVertexBuffer() const override;
|
const NzVertexBuffer* GetVertexBuffer() const override;
|
||||||
|
|
||||||
bool IsAnimated() const final;
|
bool IsAnimated() const final;
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ class NAZARA_API NzSubMesh : public NzResource
|
||||||
unsigned int GetMaterialIndex() const;
|
unsigned int GetMaterialIndex() const;
|
||||||
const NzMesh* GetParent() const;
|
const NzMesh* GetParent() const;
|
||||||
nzPrimitiveType GetPrimitiveType() const;
|
nzPrimitiveType GetPrimitiveType() const;
|
||||||
|
virtual NzVertexBuffer* GetVertexBuffer() = 0;
|
||||||
virtual const NzVertexBuffer* GetVertexBuffer() const = 0;
|
virtual const NzVertexBuffer* GetVertexBuffer() const = 0;
|
||||||
virtual unsigned int GetVertexCount() const;
|
virtual unsigned int GetVertexCount() const;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -198,6 +198,19 @@ void NzKeyframeMesh::GetVertex(unsigned int frameIndex, unsigned int vertexIndex
|
||||||
dest->uv = m_impl->uv[vertexIndex];
|
dest->uv = m_impl->uv[vertexIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NzVertexBuffer* NzKeyframeMesh::GetVertexBuffer()
|
||||||
|
{
|
||||||
|
#if NAZARA_UTILITY_SAFE
|
||||||
|
if (!m_impl)
|
||||||
|
{
|
||||||
|
NazaraError("Keyframe mesh not created");
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return m_impl->vertexBuffer;
|
||||||
|
}
|
||||||
|
|
||||||
const NzVertexBuffer* NzKeyframeMesh::GetVertexBuffer() const
|
const NzVertexBuffer* NzKeyframeMesh::GetVertexBuffer() const
|
||||||
{
|
{
|
||||||
#if NAZARA_UTILITY_SAFE
|
#if NAZARA_UTILITY_SAFE
|
||||||
|
|
|
||||||
|
|
@ -146,6 +146,19 @@ const NzIndexBuffer* NzSkeletalMesh::GetIndexBuffer() const
|
||||||
return m_impl->indexBuffer;
|
return m_impl->indexBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NzVertexBuffer* NzSkeletalMesh::GetVertexBuffer()
|
||||||
|
{
|
||||||
|
#if NAZARA_UTILITY_SAFE
|
||||||
|
if (!m_impl)
|
||||||
|
{
|
||||||
|
NazaraError("Skeletal mesh not created");
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return m_impl->vertexBuffer;
|
||||||
|
}
|
||||||
|
|
||||||
const NzVertexBuffer* NzSkeletalMesh::GetVertexBuffer() const
|
const NzVertexBuffer* NzSkeletalMesh::GetVertexBuffer() const
|
||||||
{
|
{
|
||||||
#if NAZARA_UTILITY_SAFE
|
#if NAZARA_UTILITY_SAFE
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,11 @@ const NzIndexBuffer* NzStaticMesh::GetIndexBuffer() const
|
||||||
return m_indexBuffer;
|
return m_indexBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NzVertexBuffer* NzStaticMesh::GetVertexBuffer()
|
||||||
|
{
|
||||||
|
return m_vertexBuffer;
|
||||||
|
}
|
||||||
|
|
||||||
const NzVertexBuffer* NzStaticMesh::GetVertexBuffer() const
|
const NzVertexBuffer* NzStaticMesh::GetVertexBuffer() const
|
||||||
{
|
{
|
||||||
return m_vertexBuffer;
|
return m_vertexBuffer;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue