From e56d1663378f155a4e398f1577ca1e8f484510b9 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Wed, 6 Apr 2011 10:28:39 +0300 Subject: Made mesh update on node addition asynchronous on client, to reduce frametime spikes --- src/client.cpp | 5 +++-- src/main.cpp | 11 ++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/client.cpp b/src/client.cpp index ae0e027c2..82e90704a 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 b5247b907..521a80e4f 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: ------- -- cgit v1.2.3