From 66c5fdc564dd892ed265132d6c1378dbe3cebcee Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 27 Mar 2019 09:07:54 +0800 Subject: *misc --- .../asura-lib-core/graphics/binding/_shader.cpp | 116 ++++++++++++--------- 1 file changed, 64 insertions(+), 52 deletions(-) (limited to 'source/libs/asura-lib-core/graphics/binding/_shader.cpp') diff --git a/source/libs/asura-lib-core/graphics/binding/_shader.cpp b/source/libs/asura-lib-core/graphics/binding/_shader.cpp index 2f2f507..a06e54b 100644 --- a/source/libs/asura-lib-core/graphics/binding/_shader.cpp +++ b/source/libs/asura-lib-core/graphics/binding/_shader.cpp @@ -1,114 +1,126 @@ #include "../shader.h" -using namespace Luax; +using namespace std; -namespace AsuraEngine +namespace AsuraEngine { - namespace Graphics + namespace Graphics { - - void Shader::RegisterLuaxClass(LuaxState& state) + + LUAX_REGISTRY(Shader) { + LUAX_REGISTER_METHODS(state, + { "New", _New }, + { "Use", _Use }, + { "Unuse", _Unuse }, + { "Load", _Load }, + { "HasUniform", _HasUniform }, + { "GetUniformLocation", _GetUniformLocation }, + { "SetBuiltInUniforms", _SetBuiltInUniforms }, + { "SetUniformFloat", _SetUniformFloat }, + { "SetUniformTexture", _SetUniformTexture }, + { "SetUniformVector2", _SetUniformVector2 }, + { "SetUniformVector3", _SetUniformVector3 }, + { "SetUniformVector4", _SetUniformVector4 }, + { "SetUniformColor", _SetUniformColor } + ); + } - LuaxEnum EBuiltIn[] = { - {0, 0} - }; - - state.RegisterEnum("EBuiltIn", EBuiltIn); + LUAX_POSTPROCESS(Shader) + { } - void Shader::RegisterLuaxPostprocess(LuaxState& state) + // Shader.New() + LUAX_IMPL_METHOD(Shader, _New) { + LUAX_STATE(L); } - /// - /// 将此shader设置为活动。 - /// - int Shader::l_Use(lua_State* L) + // shader:Use() + LUAX_IMPL_METHOD(Shader, _Use) { - LUAX_STATE(L); + LUAX_PREPARE(L, Shader); } - /// - /// 将此shader设置为非活动。 - /// - int Shader::l_Unuse(lua_State* L) + // shader:Unuse() + LUAX_IMPL_METHOD(Shader, _Unuse) { - LUAX_STATE(L); + LUAX_PREPARE(L, Shader); } - /// - /// 从着色器代码中构建shader程序。如果成功返回true,失败返回false。 - /// - int Shader::l_Load(lua_State* L) + // shader:Load() + LUAX_IMPL_METHOD(Shader, _Load) { - LUAX_STATE(L); + LUAX_PREPARE(L, Shader); } - /// - /// 判断shader是否有这个uniform,如果有返回true,否则返回false - /// - int Shader::l_HasUniform(lua_State* L) + // shader:HasUniform() + LUAX_IMPL_METHOD(Shader, _HasUniform) { - LUAX_STATE(L); + LUAX_PREPARE(L, Shader); } - /// - /// 后的uniforms的location,如果没有这个uniform,返回nil,否则返回对应的loc - /// - int Shader::l_GetUniformLocation(lua_State* L) + // shader:GetUniformLocation() + LUAX_IMPL_METHOD(Shader, _GetUniformLocation) { - LUAX_STATE(L); + LUAX_PREPARE(L, Shader); } - int Shader::l_SetBuiltInUniforms(lua_State* L) + // shader:SetBuiltInUniforms() + LUAX_IMPL_METHOD(Shader, _SetBuiltInUniforms) { - LUAX_STATE(L); - + LUAX_PREPARE(L, Shader); + } - int Shader::l_SetUniformFloat(lua_State* L) + // shader:SetUniformFloat() + LUAX_IMPL_METHOD(Shader, _SetUniformFloat) { - LUAX_STATE(L); + LUAX_PREPARE(L, Shader); } - int Shader::l_SetUniformTexture(lua_State* L) + // shader:SetUniformTexture() + LUAX_IMPL_METHOD(Shader, _SetUniformTexture) { - LUAX_STATE(L); + LUAX_PREPARE(L, Shader); } - int Shader::l_SetUniformVector2(lua_State* L) + // shader:SetUniformVector2() + LUAX_IMPL_METHOD(Shader, _SetUniformVector2) { - LUAX_STATE(L); + LUAX_PREPARE(L, Shader); } - int Shader::l_SetUniformVector3(lua_State* L) + // shader:SetUniformVector3() + LUAX_IMPL_METHOD(Shader, _SetUniformVector3) { - LUAX_STATE(L); + LUAX_PREPARE(L, Shader); } - int Shader::l_SetUniformVector4(lua_State* L) + // shader:SetUniformVector4() + LUAX_IMPL_METHOD(Shader, _SetUniformVector4) { - LUAX_STATE(L); + LUAX_PREPARE(L, Shader); } - int Shader::l_SetUniformColor(lua_State* L) + // shader:SetUniformColor() + LUAX_IMPL_METHOD(Shader, _SetUniformColor) { - LUAX_STATE(L); + LUAX_PREPARE(L, Shader); } } -} \ No newline at end of file +} -- cgit v1.1-26-g67d0