forked from Mirrorlandia_minetest/minetest
Made mesh update on node addition asynchronous on client, to reduce frametime spikes
This commit is contained in:
parent
212f34db82
commit
e56d166337
@ -1800,14 +1800,15 @@ void Client::addNode(v3s16 p, MapNode n)
|
|||||||
catch(InvalidPositionException &e)
|
catch(InvalidPositionException &e)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
TimeTaker timer2("Client::addNode(): updateMeshes");
|
//TimeTaker timer2("Client::addNode(): updateMeshes");
|
||||||
|
|
||||||
for(core::map<v3s16, MapBlock * >::Iterator
|
for(core::map<v3s16, MapBlock * >::Iterator
|
||||||
i = modified_blocks.getIterator();
|
i = modified_blocks.getIterator();
|
||||||
i.atEnd() == false; i++)
|
i.atEnd() == false; i++)
|
||||||
{
|
{
|
||||||
v3s16 p = i.getNode()->getKey();
|
v3s16 p = i.getNode()->getKey();
|
||||||
m_env.getClientMap().updateMeshes(p, m_env.getDayNightRatio());
|
//m_env.getClientMap().updateMeshes(p, m_env.getDayNightRatio());
|
||||||
|
addUpdateMeshTaskWithEdge(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
11
src/main.cpp
11
src/main.cpp
@ -116,6 +116,11 @@ Gaming ideas:
|
|||||||
Game content:
|
Game content:
|
||||||
-------------
|
-------------
|
||||||
- Glass blocks
|
- Glass blocks
|
||||||
|
- WHen furnace is destroyed, move items to player's inventory
|
||||||
|
- Growing grass, decaying leaves
|
||||||
|
- This can be done in the active blocks I guess.
|
||||||
|
- Lots of stuff can be done in the active blocks.
|
||||||
|
- Uh, is there an active block list somewhere?
|
||||||
|
|
||||||
Documentation:
|
Documentation:
|
||||||
--------------
|
--------------
|
||||||
@ -162,7 +167,7 @@ TODO: Make fetching sector's blocks more efficient when rendering
|
|||||||
|
|
||||||
TODO: Flowing water animation
|
TODO: Flowing water animation
|
||||||
|
|
||||||
* Combine meshes to bigger ones in ClientMap and set them EHM_STATIC
|
SUGG: Combine meshes to bigger ones in ClientMap and set them EHM_STATIC
|
||||||
|
|
||||||
SUGG: Draw cubes in inventory directly with 3D drawing commands, so that
|
SUGG: Draw cubes in inventory directly with 3D drawing commands, so that
|
||||||
animating them is easier.
|
animating them is easier.
|
||||||
@ -190,6 +195,10 @@ SUGG: Add a "description" field to InventoryList and show it in
|
|||||||
GUIInventoryMenu
|
GUIInventoryMenu
|
||||||
- If separate menus are made for everything, this is not needed
|
- If separate menus are made for everything, this is not needed
|
||||||
|
|
||||||
|
TODO: See what is the main slowdown when a node is added or removed
|
||||||
|
and make it asynchronous at least for other players
|
||||||
|
- It probably is updateMeshes. How 'bout making it asynchronous?
|
||||||
|
|
||||||
Server:
|
Server:
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user