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

View File

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