From bb452bba78dc1870d6316b383180472fe3a8a06a Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 20 Nov 2021 17:32:55 +0800 Subject: *gui --- Runtime/Lua/LuaHelper.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'Runtime/Lua/LuaHelper.cpp') diff --git a/Runtime/Lua/LuaHelper.cpp b/Runtime/Lua/LuaHelper.cpp index 084d4f6..b7bf543 100644 --- a/Runtime/Lua/LuaHelper.cpp +++ b/Runtime/Lua/LuaHelper.cpp @@ -113,6 +113,34 @@ Color32 State::GetValue < Color32 >(int idx, const Color32 value) return col; } +template <> +Color State::GetValue < Color >(int idx, const Color value) +{ + Color col = value; + if (LuaHelper::IsType(*this, "GameLab.Engine.Rendering.Color", idx)) + { + col.r = GetField(idx, "r", 0); + col.g = GetField(idx, "g", 0); + col.b = GetField(idx, "b", 0); + col.a = GetField(idx, "a", 0); + } + else if (LuaHelper::IsType(*this, "GameLab.Engine.Rendering.Color32", idx)) + { + col.r = GetField(idx, "r", 0) / 255.f; + col.g = GetField(idx, "g", 0) / 255.f; + col.b = GetField(idx, "b", 0) / 255.f; + col.a = GetField(idx, "a", 0) / 255.f; + } + else if (LuaHelper::IsType(*this, "table", idx)) + { + col.r = GetField(idx, 1, 0); + col.g = GetField(idx, 2, 0); + col.b = GetField(idx, 3, 0); + col.a = GetField(idx, 4, 0); + } + return col; +} + template <> Matrix44 State::GetValue < Matrix44 >(int idx, const Matrix44 value) { -- cgit v1.1-26-g67d0