From 67ecefd38008fc13015b69f09f4e8151e5e5fef7 Mon Sep 17 00:00:00 2001 From: Lynix Date: Mon, 1 Sep 2014 15:42:51 +0200 Subject: [PATCH] Added sprite color attribute Former-commit-id: 1db061b862315495cb40ff308348a0ac8d41e304 --- include/Nazara/Graphics/Sprite.hpp | 3 +++ src/Nazara/Graphics/Sprite.cpp | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/include/Nazara/Graphics/Sprite.hpp b/include/Nazara/Graphics/Sprite.hpp index 54ebb71a1..3316ecfa7 100644 --- a/include/Nazara/Graphics/Sprite.hpp +++ b/include/Nazara/Graphics/Sprite.hpp @@ -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; diff --git a/src/Nazara/Graphics/Sprite.cpp b/src/Nazara/Graphics/Sprite.cpp index 7d14a1a8e..6bc082a6d 100644 --- a/src/Nazara/Graphics/Sprite.cpp +++ b/src/Nazara/Graphics/Sprite.cpp @@ -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();