| 1158 | }; |
| 1159 | |
| 1160 | void ScriptBufferRegister(const ScriptLibContext& context) |
| 1161 | { |
| 1162 | lua_State* L = context.m_LuaState; |
| 1163 | g_Factory = context.m_Factory; |
| 1164 | int top = lua_gettop(L); |
| 1165 | |
| 1166 | const uint32_t type_count = 2; |
| 1167 | BufferTypeStruct types[type_count] = |
| 1168 | { |
| 1169 | {SCRIPT_TYPE_NAME_BUFFER, Buffer_methods, Buffer_meta, &dmScript::SCRIPT_BUFFER_TYPE_HASH}, |
| 1170 | {SCRIPT_TYPE_NAME_BUFFERSTREAM, Stream_methods, Stream_meta, &dmScript::SCRIPT_BUFFERSTREAM_TYPE_HASH}, |
| 1171 | }; |
| 1172 | |
| 1173 | for (uint32_t i = 0; i < type_count; ++i) |
| 1174 | { |
| 1175 | *types[i].m_TypeHash = dmScript::RegisterUserType(L, types[i].m_Name, types[i].m_Methods, types[i].m_Metatable); |
| 1176 | } |
| 1177 | luaL_register(L, SCRIPT_LIB_NAME, Module_methods); |
| 1178 | |
| 1179 | #define SETCONSTANT(name) \ |
| 1180 | lua_pushnumber(L, (lua_Number) dmBuffer::name); \ |
| 1181 | lua_setfield(L, -2, #name);\ |
| 1182 | |
| 1183 | SETCONSTANT(VALUE_TYPE_UINT8); |
| 1184 | SETCONSTANT(VALUE_TYPE_UINT16); |
| 1185 | SETCONSTANT(VALUE_TYPE_UINT32); |
| 1186 | SETCONSTANT(VALUE_TYPE_UINT64); |
| 1187 | SETCONSTANT(VALUE_TYPE_INT8); |
| 1188 | SETCONSTANT(VALUE_TYPE_INT16); |
| 1189 | SETCONSTANT(VALUE_TYPE_INT32); |
| 1190 | SETCONSTANT(VALUE_TYPE_INT64); |
| 1191 | SETCONSTANT(VALUE_TYPE_FLOAT32); |
| 1192 | |
| 1193 | #undef SETCONSTANT |
| 1194 | |
| 1195 | lua_pop(L, 1); |
| 1196 | assert(top == lua_gettop(L)); |
| 1197 | } |
| 1198 | |
| 1199 | } |
| 1200 |
no test coverage detected