| 1244 | } |
| 1245 | |
| 1246 | void PushBuffer(lua_State* L, const dmScript::LuaHBuffer& v) |
| 1247 | { |
| 1248 | DM_LUA_STACK_CHECK(L, 1); |
| 1249 | dmScript::LuaHBuffer* luabuf = (dmScript::LuaHBuffer*)lua_newuserdata(L, sizeof(dmScript::LuaHBuffer)); |
| 1250 | luabuf->m_Owner = v.m_Owner; |
| 1251 | |
| 1252 | if (v.m_Owner == dmScript::OWNER_RES) |
| 1253 | { |
| 1254 | luabuf->m_BufferRes = v.m_BufferRes; |
| 1255 | luabuf->m_BufferResVersion = v.m_BufferResVersion; |
| 1256 | luabuf->m_BufferResPathHash = v.m_BufferResPathHash; |
| 1257 | } |
| 1258 | else |
| 1259 | { |
| 1260 | luabuf->m_Buffer = v.m_Buffer; |
| 1261 | } |
| 1262 | |
| 1263 | assert(IsValidOwner(luabuf->m_Owner)); |
| 1264 | luaL_getmetatable(L, SCRIPT_TYPE_NAME_BUFFER); |
| 1265 | lua_setmetatable(L, -2); |
| 1266 | } |
| 1267 | |
| 1268 | // Note: the throw_error only controls this particular function, not the CheckUserType |
| 1269 | static dmBuffer::HBuffer CheckBufferUnpackInternal(lua_State* L, int index, bool throw_error, dmScript::LuaHBuffer** out_luabuffer) |