From 8644e03586ac9c39741f62cbcbce87b18805538c Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 14 Mar 2019 23:12:54 +0800 Subject: =?UTF-8?q?*=E5=A4=A7=E5=B0=8F=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/Asura.Engine/graphics/color.h | 94 ++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 Source/Asura.Engine/graphics/color.h (limited to 'Source/Asura.Engine/graphics/color.h') diff --git a/Source/Asura.Engine/graphics/color.h b/Source/Asura.Engine/graphics/color.h new file mode 100644 index 0000000..0d65cb1 --- /dev/null +++ b/Source/Asura.Engine/graphics/color.h @@ -0,0 +1,94 @@ +#ifndef __ASURA_ENGINE_COLOR_H__ +#define __ASURA_ENGINE_COLOR_H__ + +#include "Scripting/Luax.hpp" +#include "Scripting/Portable.h" +#include "Config.h" + +namespace AsuraEngine +{ + namespace Graphics + { + + class Color; + + /// + /// 32bits颜色 + /// + class Color32 ASURA_FINAL: public Scripting::Portable + { + public: + + Color32(); + + ~Color32(); + + Color32(const Color32& c); + + Color32(const Color& c); + + Color32(byte r, byte g, byte b, byte a); + + byte r, g, b, a; + + //---------------------------------------------------------------------------------------------------------- + + LUAX_DECL_FACTORY(Color32); + + LUAX_DECL_METHOD(l_ToColor); + LUAX_DECL_METHOD(l_GetRed); + LUAX_DECL_METHOD(l_GetGreen); + LUAX_DECL_METHOD(l_GetBlue); + LUAX_DECL_METHOD(l_GetAlpha); + LUAX_DECL_METHOD(l_Multiply); + LUAX_DECL_METHOD(l_Index); //索引r,g,b,a + LUAX_DECL_METHOD(l_NewIndex); //修改r,g,b,a + + //---------------------------------------------------------------------------------------------------------- + + }; + + /// + /// 规范化颜色 + /// + class Color ASURA_FINAL: public Scripting::Portable + { + public: + + static Color Black; + static Color White; + static Color Red; + static Color Green; + static Color Blue; + + Color(); + + Color(const Color& c); + + Color(float r, float g, float b, float a); + + Color(const Color32& c); + + ~Color(); + + Color operator *(const Color& c); + + float r, g, b, a; + + //---------------------------------------------------------------------------------------------------------- + + LUAX_DECL_FACTORY(Color); + + LUAX_DECL_METHOD(l_ToColor32); + LUAX_DECL_METHOD(l_SetColor); + LUAX_DECL_METHOD(l_GetColor); + LUAX_DECL_METHOD(l_Multiply); // 颜色乘法 + + //---------------------------------------------------------------------------------------------------------- + + }; + + } +} + +#endif \ No newline at end of file -- cgit v1.1-26-g67d0