From: Perttu Ahola Date: Wed, 6 Apr 2011 07:28:39 +0000 (+0300) Subject: Made mesh update on node addition asynchronous on client, to reduce frametime spikes X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=e56d1663378f155a4e398f1577ca1e8f484510b9;p=zefram%2Fminetest%2Fminetest_engine.git Made mesh update on node addition asynchronous on client, to reduce frametime spikes --- diff --git a/src/client.cpp b/src/client.cpp index ae0e027c..82e90704 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -1800,14 +1800,15 @@ void Client::addNode(v3s16 p, MapNode n) catch(InvalidPositionException &e) {} - TimeTaker timer2("Client::addNode(): updateMeshes"); + //TimeTaker timer2("Client::addNode(): updateMeshes"); for(core::map::Iterator i = modified_blocks.getIterator(); i.atEnd() == false; i++) { v3s16 p = i.getNode()->getKey(); - m_env.getClientMap().updateMeshes(p, m_env.getDayNightRatio()); + //m_env.getClientMap().updateMeshes(p, m_env.getDayNightRatio()); + addUpdateMeshTaskWithEdge(p); } } diff --git a/src/main.cpp b/src/main.cpp index b5247b90..521a80e4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -116,6 +116,11 @@ Gaming ideas: Game content: ------------- - 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: -------------- @@ -162,7 +167,7 @@ TODO: Make fetching sector's blocks more efficient when rendering 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 animating them is easier. @@ -190,6 +195,10 @@ SUGG: Add a "description" field to InventoryList and show it in GUIInventoryMenu - 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: -------