int timer_gc(lua_State *L)
{
    timer_info_t *p = ((timer_info_t *)luaL_checkudata(L, -1, LUA_TIMER));

    vm_timer_delete_precise(p->timer_id);
    return 0;
}
/* Release all memory allocated for graphics frame */
void free_drawing_resource(void) {
	free_frame(&g_frame[0]);
	free_frame(&g_frame[1]);
	free_frame(&g_temp_frame);
	g_frame_group[0] = NULL;
	g_frame_group[1] = NULL;
    vm_timer_delete_precise(g_timer_id);
}