From a39cfcc92e486aa1aa1cd11d7fc25b7de23d5a71 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sun, 6 Mar 2016 14:55:42 +0100 Subject: [PATCH] Core/Color: Add serialization Former-commit-id: ef50b4303a3fbc5e2b49ba440d9008fb6d51a7e3 --- include/Nazara/Core/Color.hpp | 5 ++++ include/Nazara/Core/Color.inl | 49 +++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/include/Nazara/Core/Color.hpp b/include/Nazara/Core/Color.hpp index a7df6b9a2..91a8cc43d 100644 --- a/include/Nazara/Core/Color.hpp +++ b/include/Nazara/Core/Color.hpp @@ -13,6 +13,8 @@ namespace Nz { + struct SerializationContext; + class Color { public: @@ -62,6 +64,9 @@ namespace Nz private: static float Hue2RGB(float v1, float v2, float vH); }; + + inline bool Serialize(SerializationContext& context, const Color& color); + inline bool Unserialize(SerializationContext& context, Color* color); } std::ostream& operator<<(std::ostream& out, const Nz::Color& color); diff --git a/include/Nazara/Core/Color.inl b/include/Nazara/Core/Color.inl index c3359cd0f..4ac3a2246 100644 --- a/include/Nazara/Core/Color.inl +++ b/include/Nazara/Core/Color.inl @@ -2,6 +2,7 @@ // This file is part of the "Nazara Engine - Core module" // For conditions of distribution and use, see copyright notice in Config.hpp +#include #include #include #include @@ -610,6 +611,54 @@ namespace Nz return v1; } + + /*! + * \brief Serializes a Color + * \return true if successfully serialized + * + * \param context Serialization context + * \param color Input color + */ + inline bool Serialize(SerializationContext& context, const Color& color) + { + if (!Serialize(context, color.r)) + return false; + + if (!Serialize(context, color.g)) + return false; + + if (!Serialize(context, color.b)) + return false; + + if (!Serialize(context, color.a)) + return false; + + return true; + } + + /*! + * \brief Unserializes a Color + * \return true if successfully unserialized + * + * \param context Serialization context + * \param color Output color + */ + inline bool Unserialize(SerializationContext& context, Color* color) + { + if (!Unserialize(context, &color->r)) + return false; + + if (!Unserialize(context, &color->g)) + return false; + + if (!Unserialize(context, &color->b)) + return false; + + if (!Unserialize(context, &color->a)) + return false; + + return true; + } } /*!