MCPcopy Create free account
hub / github.com/defold/defold / ScriptBufferRegister

Function ScriptBufferRegister

engine/gamesys/src/gamesys/scripts/script_buffer.cpp:1160–1197  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

InitializeScriptLibsFunction · 0.85

Calls 3

lua_gettopFunction · 0.85
RegisterUserTypeFunction · 0.85
assertFunction · 0.50

Tested by

no test coverage detected