diff options
Diffstat (limited to 'src/client/lua_api/video/itexture.cpp')
| -rw-r--r-- | src/client/lua_api/video/itexture.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/client/lua_api/video/itexture.cpp b/src/client/lua_api/video/itexture.cpp new file mode 100644 index 0000000..a7f4652 --- /dev/null +++ b/src/client/lua_api/video/itexture.cpp @@ -0,0 +1,41 @@ + +extern "C" { + #include <lua.h> + #include <lauxlib.h> + #include <lualib.h> +} +#include <irrlicht.h> +#include "itexture.hpp" +#include "iimage.hpp" +#include "../../../shared/lua_api/common.h" + +using namespace irr; +using namespace video; + +extern IrrlichtDevice* device; +extern IVideoDriver* driver; +//newtexture(string name,IImage* image) +int newitexture(lua_State* L){ + IImage* im = (IImage*) lua_touserdata(L,-1); + lua_pop(L,1); + const char* name = lua_tostring(L,-1); + lua_pop(L,1); + + ITexture* tex = driver->addTexture(name,im); + if(!tex){ + lua_pushstring(L,"Failed to create texture!"); + lua_error(L); + } + + lua_pushlightuserdata(L,tex); + + return 1; +} + + + +void itexture_register(lua_State* L){ + lua_getglobal(L,"video"); + lua_pushcfunction(L,newitexture); + lua_setfield(L,-2,"newtexture"); +} |
