Skip to content

Commit

Permalink
Remove ClientMap::m_camera_mutex
Browse files Browse the repository at this point in the history
All places that lock this mutex are only called by the main thread:
ClientMap::updateCamera(), ClientMap::updateDrawList(), ClientMap::renderMap(), ClientMap::renderPostFx().
  • Loading branch information
kahrl authored and paramat committed Feb 9, 2016
1 parent 4adbd69 commit 180893e
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 12 deletions.
11 changes: 1 addition & 10 deletions src/clientmap.cpp
Expand Up @@ -157,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.
Expand Down Expand Up @@ -433,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
Expand Down Expand Up @@ -799,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.
Expand Down
2 changes: 0 additions & 2 deletions src/clientmap.h
Expand Up @@ -89,7 +89,6 @@ class ClientMap : public Map, public scene::ISceneNode

void updateCamera(v3f pos, v3f dir, f32 fov, v3s16 offset)
{
MutexAutoLock lock(m_camera_mutex);
m_camera_position = pos;
m_camera_direction = dir;
m_camera_fov = fov;
Expand Down Expand Up @@ -149,7 +148,6 @@ class ClientMap : public Map, public scene::ISceneNode
v3f m_camera_direction;
f32 m_camera_fov;
v3s16 m_camera_offset;
Mutex m_camera_mutex;

std::map<v3s16, MapBlock*> m_drawlist;

Expand Down

0 comments on commit 180893e

Please sign in to comment.