Added sprite color attribute

Former-commit-id: 1db061b862315495cb40ff308348a0ac8d41e304
This commit is contained in:
Lynix 2014-09-01 15:42:51 +02:00
parent 2753e3c4f1
commit 67ecefd380
2 changed files with 18 additions and 1 deletions

View File

@ -23,6 +23,7 @@ class NAZARA_API NzSprite : public NzSceneNode
void AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const override;
const NzBoundingVolumef& GetBoundingVolume() const override;
const NzColor& GetColor() const;
NzMaterial* GetMaterial() const;
nzSceneNodeType GetSceneNodeType() const override;
const NzVector2f& GetSize() const;
@ -30,6 +31,7 @@ class NAZARA_API NzSprite : public NzSceneNode
bool IsDrawable() const;
void SetColor(const NzColor& color);
void SetMaterial(NzMaterial* material, bool resizeSprite = true);
void SetSize(const NzVector2f& size);
void SetTexture(NzTexture* texture, bool resizeSprite = true);
@ -43,6 +45,7 @@ class NAZARA_API NzSprite : public NzSceneNode
void UpdateBoundingVolume() const;
mutable NzBoundingVolumef m_boundingVolume;
NzColor m_color;
NzMaterialRef m_material;
NzRectf m_textureCoords;
NzVector2f m_size;

View File

@ -8,6 +8,7 @@
NzSprite::NzSprite() :
m_boundingVolume(NzBoundingVolumef::Null()),
m_color(NzColor::White),
m_textureCoords(0.f, 0.f, 1.f, 1.f),
m_size(64.f, 64.f),
m_boundingVolumeUpdated(true)
@ -16,6 +17,7 @@ m_boundingVolumeUpdated(true)
NzSprite::NzSprite(NzTexture* texture) :
m_boundingVolume(NzBoundingVolumef::Null()),
m_color(NzColor::White),
m_textureCoords(0.f, 0.f, 1.f, 1.f)
{
if (texture)
@ -41,6 +43,7 @@ m_textureCoords(0.f, 0.f, 1.f, 1.f)
NzSprite::NzSprite(const NzSprite& sprite) :
NzSceneNode(sprite),
m_boundingVolume(sprite.m_boundingVolume),
m_color(sprite.m_color),
m_material(sprite.m_material),
m_textureCoords(sprite.m_textureCoords),
m_size(sprite.m_size),
@ -52,6 +55,7 @@ m_boundingVolumeUpdated(sprite.m_boundingVolumeUpdated)
NzSprite::NzSprite(NzSprite&& sprite) :
NzSceneNode(sprite),
m_boundingVolume(sprite.m_boundingVolume),
m_color(std::move(sprite.m_color)),
m_material(std::move(sprite.m_material)),
m_textureCoords(sprite.m_textureCoords),
m_size(sprite.m_size),
@ -72,6 +76,11 @@ const NzBoundingVolumef& NzSprite::GetBoundingVolume() const
return infinity;
}
const NzColor& NzSprite::GetColor() const
{
return m_color;
}
NzMaterial* NzSprite::GetMaterial() const
{
return m_material;
@ -97,6 +106,11 @@ bool NzSprite::IsDrawable() const
return m_material != nullptr;
}
void NzSprite::SetColor(const NzColor& color)
{
m_color = color;
}
void NzSprite::SetMaterial(NzMaterial* material, bool resizeSprite)
{
m_material = material;
@ -173,7 +187,7 @@ void NzSprite::Unregister()
void NzSprite::UpdateBoundingVolume() const
{
if (m_boundingVolume.IsNull())
m_boundingVolume.Set(-m_size.x*0.5f, -m_size.y*0.5f, 0.f, m_size.x, m_size.y, 0.f);
m_boundingVolume.Set(0.f, 0.f, 0.f, m_size.x, m_size.y, 0.f);
if (!m_transformMatrixUpdated)
UpdateTransformMatrix();