From 84613b4306e0740ededef5746c2960cfcb1fc106 Mon Sep 17 00:00:00 2001 From: Lynix Date: Mon, 17 Jun 2013 17:29:52 +0200 Subject: [PATCH] Cleaned LuaClass code Former-commit-id: 353ba8ea134cbbd4fa72a120ec1e8e218acd0c21 --- include/Nazara/Lua/LuaClass.inl | 19 ++++++++----------- src/Nazara/Graphics/SkyboxBackground.cpp | 4 +++- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/include/Nazara/Lua/LuaClass.inl b/include/Nazara/Lua/LuaClass.inl index 0ddf04ee8..85a1b2dfc 100644 --- a/include/Nazara/Lua/LuaClass.inl +++ b/include/Nazara/Lua/LuaClass.inl @@ -23,12 +23,6 @@ void NzLuaClass::Inherit(NzLuaClass

& parent) template void NzLuaClass::Register(NzLuaInstance& lua) { - m_info->methods.resize(m_methods.size()); - - unsigned int index = 0; - for (auto it = m_methods.begin(); it != m_methods.end(); ++it) - m_info->methods[index++] = it->second; - // Le ClassInfo doit rester en vie jusqu'à la fin du script // Obliger l'instance de LuaClass à rester en vie dans cette fin serait contraignant pour l'utilisateur // J'utilise donc une astuce, la stocker dans une UserData associée avec chaque fonction de la metatable du type, @@ -61,12 +55,10 @@ void NzLuaClass::Register(NzLuaInstance& lua) lua.PushCFunction(GetterProxy, 1); } else - { // Optimisation, plutôt que de rediriger vers une fonction C qui ne fera rien d'autre que rechercher // dans la table, nous envoyons directement la table, de sorte que Lua fasse directement la recherche // Ceci n'est possible que si nous n'avons ni getter, ni parent lua.PushValue(-1); - } lua.SetField("__index"); // Getter @@ -77,16 +69,21 @@ void NzLuaClass::Register(NzLuaInstance& lua) lua.SetField("__newindex"); // Setter } - index = 0; + m_info->methods.resize(m_methods.size()); + + unsigned int index = 0; for (auto it = m_methods.begin(); it != m_methods.end(); ++it) { + m_info->methods[index] = it->second; + lua.PushValue(1); - lua.PushInteger(index++); + lua.PushInteger(index); lua.PushCFunction(MethodProxy, 2); lua.SetField(it->first); // Méthode - } + index++; + } } lua.Pop(); diff --git a/src/Nazara/Graphics/SkyboxBackground.cpp b/src/Nazara/Graphics/SkyboxBackground.cpp index acea4eef9..df8e1db9f 100644 --- a/src/Nazara/Graphics/SkyboxBackground.cpp +++ b/src/Nazara/Graphics/SkyboxBackground.cpp @@ -2,7 +2,9 @@ // This file is part of the "Nazara Engine - Graphics module" // For conditions of distribution and use, see copyright notice in Config.hpp -#define NAZARA_RENDERER_OPENGL // Nécessaire pour accéder à OpenGL +#ifndef NAZARA_RENDERER_OPENGL +#define NAZARA_RENDERER_OPENGL // Nécessaire pour inclure les headers OpenGL +#endif #include #include