]> git.lizzy.rs Git - minetest.git/blobdiff - src/clientmap.cpp
Use single box for halo mesh
[minetest.git] / src / clientmap.cpp
index 907df7128a15a6629a60914b8b9804334d4595cc..024f2a266e2beb69a330de54b2ab5a3d0f180121 100644 (file)
@@ -24,12 +24,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include <matrix4.h>
 #include "log.h"
 #include "mapsector.h"
-#include "main.h" // dout_client, g_settings
 #include "nodedef.h"
 #include "mapblock.h"
 #include "profiler.h"
 #include "settings.h"
-#include "camera.h" // CameraModes
+#include "camera.h"               // CameraModes
 #include "util/mathconstants.h"
 #include <algorithm>
 
@@ -71,7 +70,7 @@ ClientMap::ClientMap(
 
 ClientMap::~ClientMap()
 {
-       /*JMutexAutoLock lock(mesh_mutex);
+       /*MutexAutoLock lock(mesh_mutex);
 
        if(mesh != NULL)
        {
@@ -82,7 +81,7 @@ ClientMap::~ClientMap()
 
 MapSector * ClientMap::emergeSector(v2s16 p2d)
 {
-       DSTACK(__FUNCTION_NAME);
+       DSTACK(FUNCTION_NAME);
        // Check that it doesn't exist already
        try{
                return getSectorNoGenerate(p2d);
@@ -95,7 +94,7 @@ MapSector * ClientMap::emergeSector(v2s16 p2d)
        ClientMapSector *sector = new ClientMapSector(this, p2d, m_gamedef);
 
        {
-               //JMutexAutoLock lock(m_sector_mutex); // Bulk comment-out
+               //MutexAutoLock lock(m_sector_mutex); // Bulk comment-out
                m_sectors[p2d] = sector;
        }
 
@@ -158,12 +157,9 @@ void ClientMap::updateDrawList(video::IVideoDriver* driver)
        }
        m_drawlist.clear();
 
-       m_camera_mutex.Lock();
        v3f camera_position = m_camera_position;
        v3f camera_direction = m_camera_direction;
        f32 camera_fov = m_camera_fov;
-       //v3s16 camera_offset = m_camera_offset;
-       m_camera_mutex.Unlock();
 
        // Use a higher fov to accomodate faster camera movements.
        // Blocks are cropped better when they are drawn.
@@ -229,7 +225,7 @@ void ClientMap::updateDrawList(video::IVideoDriver* driver)
                u32 sector_blocks_drawn = 0;
 
                for(MapBlockVect::iterator i = sectorblocks.begin();
-                               i != sectorblocks.end(); i++)
+                               i != sectorblocks.end(); ++i)
                {
                        MapBlock *block = *i;
 
@@ -264,7 +260,7 @@ void ClientMap::updateDrawList(video::IVideoDriver* driver)
                                Ignore if mesh doesn't exist
                        */
                        {
-                               //JMutexAutoLock lock(block->mesh_mutex);
+                               //MutexAutoLock lock(block->mesh_mutex);
 
                                if(block->mesh == NULL){
                                        blocks_in_range_without_mesh++;
@@ -401,7 +397,7 @@ struct MeshBufListList
 
 void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
 {
-       DSTACK(__FUNCTION_NAME);
+       DSTACK(FUNCTION_NAME);
 
        bool is_transparent_pass = pass == scene::ESNRP_TRANSPARENT;
 
@@ -434,11 +430,9 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
        int crack = m_client->getCrackLevel();
        u32 daynight_ratio = m_client->getEnv().getDayNightRatio();
 
-       m_camera_mutex.Lock();
        v3f camera_position = m_camera_position;
        v3f camera_direction = m_camera_direction;
        f32 camera_fov = m_camera_fov;
-       m_camera_mutex.Unlock();
 
        /*
                Get all blocks and draw all visible ones
@@ -505,7 +499,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
 
                // Mesh animation
                {
-                       //JMutexAutoLock lock(block->mesh_mutex);
+                       //MutexAutoLock lock(block->mesh_mutex);
                        MapBlockMesh *mapBlockMesh = block->mesh;
                        assert(mapBlockMesh);
                        // Pretty random but this should work somewhat nicely
@@ -535,12 +529,12 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
                        Get the meshbuffers of the block
                */
                {
-                       //JMutexAutoLock lock(block->mesh_mutex);
+                       //MutexAutoLock lock(block->mesh_mutex);
 
                        MapBlockMesh *mapBlockMesh = block->mesh;
                        assert(mapBlockMesh);
 
-                       scene::SMesh *mesh = mapBlockMesh->getMesh();
+                       scene::IMesh *mesh = mapBlockMesh->getMesh();
                        assert(mesh);
 
                        u32 c = mesh->getMeshBufferCount();
@@ -800,11 +794,7 @@ void ClientMap::renderPostFx(CameraMode cam_mode)
        // Sadly ISceneManager has no "post effects" render pass, in that case we
        // could just register for that and handle it in renderMap().
 
-       m_camera_mutex.Lock();
-       v3f camera_position = m_camera_position;
-       m_camera_mutex.Unlock();
-
-       MapNode n = getNodeNoEx(floatToInt(camera_position, BS));
+       MapNode n = getNodeNoEx(floatToInt(m_camera_position, BS));
 
        // - If the player is in a solid node, make everything black.
        // - If the player is in liquid, draw a semi-transparent overlay.