| 3368 | } |
| 3369 | |
| 3370 | void DeleteRenderScriptInstance(HRenderScriptInstance render_script_instance) |
| 3371 | { |
| 3372 | lua_State* L = render_script_instance->m_RenderContext->m_RenderScriptContext.m_LuaState; |
| 3373 | |
| 3374 | int top = lua_gettop(L); |
| 3375 | (void) top; |
| 3376 | |
| 3377 | lua_rawgeti(L, LUA_REGISTRYINDEX, render_script_instance->m_InstanceReference); |
| 3378 | dmScript::SetInstance(L); |
| 3379 | dmScript::FinalizeInstance(render_script_instance->m_ScriptWorld); |
| 3380 | lua_pushnil(L); |
| 3381 | dmScript::SetInstance(L); |
| 3382 | |
| 3383 | dmScript::Unref(L, LUA_REGISTRYINDEX, render_script_instance->m_InstanceReference); |
| 3384 | dmScript::Unref(L, LUA_REGISTRYINDEX, render_script_instance->m_RenderScriptDataReference); |
| 3385 | dmScript::Unref(L, LUA_REGISTRYINDEX, render_script_instance->m_ContextTableReference); |
| 3386 | |
| 3387 | ReleaseConstantBufferLuaRefs(L, render_script_instance); |
| 3388 | |
| 3389 | assert(top == lua_gettop(L)); |
| 3390 | |
| 3391 | for (uint32_t i = 0; i < render_script_instance->m_PredicateCount; ++i) { |
| 3392 | delete render_script_instance->m_Predicates[i]; |
| 3393 | } |
| 3394 | render_script_instance->~RenderScriptInstance(); |
| 3395 | ResetRenderScriptInstance(render_script_instance); |
| 3396 | } |
| 3397 | |
| 3398 | void SetRenderScriptInstanceRenderScript(HRenderScriptInstance render_script_instance, HRenderScript render_script) |
| 3399 | { |