diff options
Diffstat (limited to 'src/client/lua_api/video/smaterial.cpp')
| -rw-r--r-- | src/client/lua_api/video/smaterial.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/client/lua_api/video/smaterial.cpp b/src/client/lua_api/video/smaterial.cpp new file mode 100644 index 0000000..e5b9eff --- /dev/null +++ b/src/client/lua_api/video/smaterial.cpp @@ -0,0 +1,51 @@ + +extern "C" { + #include <lua.h> + #include <lauxlib.h> + #include <lualib.h> +} +#include <irrlicht.h> +#include "smaterial.hpp" + +using namespace irr::video; + +/*This probably needs a _gc metamethod*/ +int newsmaterial(lua_State* L){ + SMaterial* mat = new SMaterial(); + lua_pushlightuserdata(L,mat); + + return 0; +} + +#define set_const(l,x) lua_pushstring(l,#x);lua_pushinteger(l,x);lua_settable(l,-3); + +void smaterial_register(lua_State* L){ + //Add globals dealing with material flags + + lua_getglobal(L,"video");//{} + + set_const(L,EMF_WIREFRAME); + set_const(L,EMF_POINTCLOUD); + set_const(L,EMF_GOURAUD_SHADING); + set_const(L,EMF_LIGHTING); + set_const(L,EMF_ZBUFFER); + set_const(L,EMF_ZWRITE_ENABLE); + set_const(L,EMF_BACK_FACE_CULLING); + set_const(L,EMF_FRONT_FACE_CULLING); + set_const(L,EMF_BILINEAR_FILTER); + set_const(L,EMF_TRILINEAR_FILTER); + set_const(L,EMF_ANISOTROPIC_FILTER); + set_const(L,EMF_FOG_ENABLE); + set_const(L,EMF_NORMALIZE_NORMALS); + set_const(L,EMF_TEXTURE_WRAP); + set_const(L,EMF_ANTI_ALIASING); + set_const(L,EMF_COLOR_MASK); + set_const(L,EMF_COLOR_MATERIAL); + set_const(L,EMF_USE_MIP_MAPS); + set_const(L,EMF_BLEND_OPERATION); + set_const(L,EMF_POLYGON_OFFSET); + + lua_pushcfunction(L,newsmaterial);//{},newsmaterial + lua_setfield(L,-2,"newsmaterial"); + +} |
